c# - 基于xml文件生成C#对象?

标签 c# xml generated-code

这可能是在左领域的出路,疯狂,但我只需要在继续实现这一庞大的类集之前问一下。

基本上,我正在编写一个二进制消息解析器,将某种军事消息格式解码为一个对象。问题是实际上有数百种不同的消息类型,而且它们之间几乎没有任何共同点。所以我计划实现它的方式是创建数百个不同的对象。

然而,即使消息属性没有任何共同点,解码它们的方法也相当简单并且遵循一种模式。所以我打算编写一个代码生成器来生成所有对象和每种消息类型的解码逻辑。

如果有某种方法可以根据某种模式动态创建对象,那就太好了。它不一定必须是 XML,但 XML 非常易于使用。

这在 C# 中可行吗?

我希望界面看起来像这样:

var decodedMessage = MessageDecoder.Decode(byteArray);

MessageDecoder 找出它是什么类型的消息,然后返回适当的对象。它可能会返回一个实现 MessageType 属性或类似属性的接口(interface)。

基本上,我想知道是否有一种方法可以让一个名为 Message 的对象实现 MessageType 属性。然后,根据 MessageType,Message 对象会转换为任何类型的消息,因此我不必花时间创建所有这些消息类型。

最佳答案

ExpandOobject您可以在其中向对象动态添加字段。

A good starting point is here.

关于c# - 基于xml文件生成C#对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9794742/

相关文章:

c# - 使用 ASP.NET Core Web 应用程序和 .NET Core API 进行 ADFS 单点登录

c# - 如果给定目录包含 ".exe",我将尝试返回 True 或 false

java - 如何将 xslt 生成的错误消息传递给 java 应用程序调用方

xml - 如何转义 XML 属性值中的双引号?

javascript - 带有 javascript 的多功能 xml 属性正则表达式

java - Ant 到gradle迁移中生成的源代码

c# - 在 WCF 服务 C# 中使用静态上下文、ConcurrencyMode.Single、InstanceContextMode.PerSession 有负面影响吗?

c# - 完成前取消 $.post

dagger-2 - 错误 : cannot find symbol @dagger. 模块(包括 = {InflationInject_ViewModule.class})