【发布时间】:2014-10-31 21:04:29
【问题描述】:
我有一个如下所示的文件:
public abstract class TestStep
{
public abstract bool DoWork();
public abstract List<TestStep> PrerequisiteSteps { get; set; }
public abstract string DisplayForm { get; }
}
class TestFunctions
{
public class A : TestStep
{
public override string DisplayForm { get { return "MainForm; } }
// remaining implementation goes here...
}
public class B : TestStep { // some implementation }
public class C : TestStep { // some implementation }
public static void NextStep() { }
}
我想将类A、B 和C 序列化为一个XML 文件。我可以手动将这些类的实例添加到 List<TestStep> 对象并将其传递给 XML 序列化程序,但我想以编程方式完成此操作,因为将来我可能会在 TestFunctions 中添加或删除类。结果,我发现我可以使用反射来获取函数数组:
Type type = (typeof(TestEngineFunctions));
Type[] testEngineFunctions = type.GetNestedTypes(BindingFlags.Public);
但是我不确定如何从这里开始。我可以访问函数的名称,也可以获取它们的属性,但最终我没有要序列化的实际对象。
我是在正确的轨道上还是有其他更适合这个的方法?
【问题讨论】:
标签: c# reflection xml-serialization inner-classes