如何从动态对象创建C#类代码?

时间:2018-03-28 21:37:39

标签: c# .net dynamic mono

有人向我发送JSON。每次都有相同的格式。可以使用var oldschool = JsonConvert.DeserializeObject<GeneratedTypeFromDynamicObject>(rawJson);将其反序列化为动态对象。文档对我当前的版本或JSON提供程序不利,而我想在我得到的所有字段上进行代码高亮显示。

如何从动态对象获取C#类代码,以便我可以使用<iframe id="fred" width="100%" height="750"></iframe> 反序列化为生成的类型而不是动态对象?

1 个答案:

答案 0 :(得分:3)

在运行时生成类型对您没有多大帮助,因为您需要在编译时使用该类型以获得早期绑定,类型安全和Intellisense。更实际的想法是做以下事情:

  1. 从日志中获取JSON字符串的代表性示例。

  2. Paste the JSON加入一个类并将其保存为项目中的c#代码。

  3. 开始使用该类作为反序列化调用的类型参数。

  4. enter image description here

    执行此操作后,您将在代码库中拥有正确的类,并且可以针对它进行编译。如果向您发送JSON的人员决定更改消息,则将忽略任何新字段。如果他们开始删除东西,那么你就会遇到问题,就好像他们已经改变了SOAP服务的WSDL一样。您将不得不重复上述步骤,并更正代码中的任何重大更改。好的一点是,你将进行重大修改,以便在编译时指导你:)