Как преобразовать Local <Name>в строку? - PullRequest
0 голосов
/ 05 марта 2019

Так что после того, как тебя не стало, некоторые вещи изменились.Раньше я мог сделать это:

void ObjectTemplateProxy::GetProperty(Local<String> hName, const PropertyCallbackInfo<Value>& info)
{
    auto hStr = hName->ToString();

Но теперь мне нужен изолятор, и тип параметра изменился на Local<Name>.Затем я попробовал это:

auto hStr = hName->ToString(info.GetIsolate());

Но это все равно не работает, потому что hStr равно нулю.Это ноль, потому что, как выясняется, имя на самом деле тип Symbol, а НЕ String.Я не вижу способа преобразовать символ в строку, что мне нужно сделать, чтобы отправить имя в C # CLR через P / Invoke, чтобы извлечь значение из словаря, используя строковые ключи.

1 Ответ

0 голосов
/ 05 марта 2019

Итак, может показаться, что есть функция Name() для типа Symbol, которая возвращает String.Я искал функцию типа Symbol и не нашел ее (должно быть, пропустил).Код, который работал, был hName.As<Symbol>()->Name().As<String>();.

Как отмечено ниже в комментариях, Symbol() не обязательно иметь имя, так что будьте осторожны!

...