所以离开一段时间后,有些事情发生了变化。我曾经能够做到这一点:
void ObjectTemplateProxy::GetProperty(Local<String> hName, const PropertyCallbackInfo<Value>& info)
{
auto hStr = hName->ToString();
但是现在我需要一个隔离符,并且参数类型已更改为Local<Name>
。然后我尝试了这个:
auto hStr = hName->ToString(info.GetIsolate());
但是这仍然不起作用,因为hStr
为空。它为null,因为事实证明,名称实际上是Symbol
类型,而不是String
。我看不到任何将符号转换为字符串的方法,我需要通过P / Invoke将该名称发送到C#CLR,以使用字符串键从字典中提取值。
答案 0 :(得分:0)
因此,似乎在Name()
类型上有一个Symbol
函数返回了String
。我一直在寻找Symbol
类型的函数,但没有找到(一定错过了)。有效的代码是hName.As<Symbol>()->Name().As<String>();
。
如以下注释中所述,Symbol()
不需要具有名称,所以请当心!