我可能正在接近这个错误,但我有一个HTTP端点,它将接收带有匿名数据对象的JSON有效负载和一个名称参数,用于定义应该转换为什么类型。问题是我不太确定如何动态反序列化它以接受该类型。这是我到目前为止所尝试的内容。
// Get request body
RequestBodyObject body = await req.Content.ReadAsAsync<RequestBodyObject>();
var assemblyName = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name;
Type typeObject = Type.GetType($"MyNamespace, {assemblyName}");
// Cast data obtained
var specificObject = JsonConvert.DeserializeObject<typeObject>(body.Data.ToString());
我的问题当然是我不能在&lt;&gt;之间使用typeObject。我的Json转换线的一部分。如果我在那个地方指定一个静态对象,我的代码工作正常,但我正在寻找动态解决方案,因为来自某个集合的任何类型的对象都可以正常传递。
有什么想法吗?
答案 0 :(得分:1)
你可以试试;
var specificObject = JsonConvert.DeserializeObject(body.Data.ToString(),typeObject);
另外,你不能使用任何类型;
Type typeObject = Type.GetType($"MyNamespace, {assemblyName}");
您应该指定类型名称,它看起来像;
var typeObject = System.Reflection.Assembly.GetExecutingAssembly().GetType("JsonObject");