您是否可以在C#中创建新类,应用程序读取来自XML并声明它们属性也是从XML读取的类。 喜欢:
<item id=1>
<Name>John</Name>
<Surname>Kennedy</Surname>
<Age>24</Age>
</item>
最好成绩。
答案 0 :(得分:10)
是的,它与System.Reflection.Emit命名空间有关。
但是在.net 4.0中你可以使用动态keywoard。像这样http://blogs.msdn.com/b/mcsuksoldev/archive/2010/02/04/dynamic-xml-reader-with-c-and-net-4-0.aspx
没有动态,即使你创建了新类,也需要反射来访问它们的属性
答案 1 :(得分:2)
答案 2 :(得分:0)
您可以在新类中反序列化此XML!尝试这样的事情:
public static T DeserializeObject<T>(string filePath)
{
XmlDocument doc = new XmlDocument();
doc.Load(filePath);
XmlNodeReader reader = new XmlNodeReader(doc.DocumentElement);
XmlSerializer ser = new XmlSerializer(typeof(T));
object obj = ser.Deserialize(reader);
return (T)obj;
}
答案 3 :(得分:0)
你必须使用Reflection api来做那件很复杂的事情。请描述您的方案。也许有更简单的方法。
答案 4 :(得分:0)
我真的没有意义。由于C#是强类型的,因此您不会在编译类型中知道对象的外观,因此您无法使用它。
也许你最好制作一个使用Dictionary的对象,其中键是节点名。然后,您可以查询字典以查找它具有的属性。
答案 5 :(得分:0)