JSON к экземпляру, используя TypeName - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь найти способ создания экземпляра класса из полного имени типа класса и json-представления экземпляра.

var classTypeFullName = "something.type";
var classType = Type.GetType(classTypeFullName);
var instanceJson = "{....}";
var classInstance = JsonConvert.DeserializeObject(instanceJson, classType);

Моя проблема в том, что он всегда возвращает JObject, мне нужно, чтобы он возвращал тип экземпляра. Если бы я знал тип до запуска кода, я бы просто сделал следующее:

var classInstance = JsonConvert.DeserializeObject<T>(instanceJson);

Кто-нибудь может помочь?

Ответы [ 2 ]

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

Попробуйте, я сделал это некоторое время назад.

convert yr Json to dynamic dynamicObj, and have the full assembly name

var type = Type.GetType("something.type");
var obj = Convert.ChangeType(dynamicObj.Result, type);
0 голосов
/ 14 марта 2019

В случае, если вы ищете ответ на что-то вроде этого.

Приложение C # Core2.2 не загружало сборку, поскольку оно зависело от ссылочной библиотеки DLL.Таким образом, classType был нулевым, и поэтому десериализация всегда возвращалась как объект JO, а не ожидаемый тип.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...