我不确定从哪里开始。我正在使用我的实体组件模型库为 XNA 编写一个 GUI 管理器。我希望能够将 XML 文档动态导入 GUI 表单。我的想法是拥有一个"type"
包含控件类型的属性。例如type="Image"
会告诉解析器制作一个图像。一旦有了它,它就可以调用它自己的 XML 解析方法来填充值。但是,我被困在这部分。
考虑这个文件:
<Gui>
<BGImage type="Image">
<Body>
<Position>
<X>0</X>
<Y>0</Y>
</Position>
</Body>
<ImageRender>
<Texture>background</Texture>
<Color>
<R>255</R>
<G>255</G>
<B>255</B>
<A>255</A>
</Color>
</ImageRender>
</BGImage>
<CheckBox type="Checkbox">
<Body>
<Position>
<X>20</X>
<Y>20</Y>
</Position>
</Body>
<TileRender>
<Index>0</Index>
<Texture>checkbox</Texture>
<Color>
<R>255</R>
<G>255</G>
<B>255</B>
<A>255</A>
</Color>
</TileRender>
<TextRender>
<Text>Checkbox</Text>
<Font>spritefont</Font>
</TextRender>
</CheckBox>
</Gui>
我要做的是让一个类解析这个 XML 文档并执行以下操作。任何带有 type 属性的标签都作为它们所代表的类型添加到表单中。例如,我有一个代表图像的 Image 类,示例中的 BGImage 应该制作一个 Image 并添加到表单中。我需要一种将 type="Image" 与 Image 类相关联的方法。
我已经有一种用于向游戏添加实体的方法,我的问题在于一种将字符串设为类型并从中实例化新实体的方法。
我要做的是从字符串返回一个类型,我不确定这是否可能。有没有办法在 C# 中做到这一点,还是我从错误的角度攻击这个?