这可能是左场的出路,疯狂,但我只需要问之前,我继续实施这一套庞大的类。
基本上,我正在编写一个二进制消息解析器,它将某个军用消息格式解码为一个对象。问题是,实际上有数百种不同的消息类型,它们几乎没有任何共同点。所以我计划实现这个的方法是创建数百个不同的对象。
然而,即使消息属性没有任何共同点,解码它们的方法也相当简单,并且遵循一种模式。所以我计划编写一个代码生成器来为每种消息类型生成所有对象和解码逻辑。
如果有一种方法可以基于某种模式动态地创建对象,那将是非常好的。它不一定非得是XML,但XML很容易使用。
这在C_有可能吗?
我希望界面看起来像这样:

var decodedMessage = MessageDecoder.Decode(byteArray);

其中,MessageDecoder找出它是什么类型的消息,然后返回相应的对象。它可能会返回一个实现MessageType属性的接口或类似的东西。
基本上,我想知道是否有一种方法可以让一个名为Message的对象实现一个MessageType属性。然后根据消息类型,消息对象将转换为任何类型的消息,因此我不必花时间创建所有这些消息类型。

最佳答案

ExpandOobject可以动态向对象添加字段的位置。
A good starting point is here.

08-06 02:24