我可能不正确地接近了这一点,但我有一个HTTP端点,它将接收一个JSON有效负载,其中包含一个匿名数据对象和一个定义它应该转换为哪种类型的name参数。问题是我不太确定如何动态反序列化它以接受该类型。这是我到目前为止尝试过的。
// 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());
当然,我的问题是我不能在 Json 转换行的 <> 部分之间使用 typeObject。如果我在那个地方指定一个静态对象,我的代码工作正常,但我正在寻找一个动态解决方案,因为来自某个集合的任何类型的对象都可以很好地传递。
有什么想法吗?
你可以试试;
var specificObject = JsonConvert.DeserializeObject(body.Data.ToString(),typeObject);
此外,您不会获得任何类型;
Type typeObject = Type.GetType($"MyNamespace, {assemblyName}");
您应该指定类型名称,它看起来像;
var typeObject = System.Reflection.Assembly.GetExecutingAssembly().GetType("JsonObject");