您好,是否可以在C#中创建新的类?这些类可以从XML中读取,并声明它们的属性也从XML中读取。
<item id=1>
<Name>John</Name>
<Surname>Kennedy</Surname>
<Age>24</Age>
</item>
bests.
您好,是否可以在C#中创建新的类?这些类可以从XML中读取,并声明它们的属性也从XML中读取。
<item id=1>
<Name>John</Name>
<Surname>Kennedy</Surname>
<Age>24</Age>
</item>
bests.
是的,可以使用System.Reflection.Emit命名空间实现。
但在.NET 4.0中,您可以使用dynamic关键字。就像这样http://blogs.msdn.com/b/mcsuksoldev/archive/2010/02/04/dynamic-xml-reader-with-c-and-net-4-0.aspx
如果没有使用dynamic,即使创建了新的类,也需要使用反射来访问其属性。
你需要使用反射API来完成这个复杂的任务。请描述你的场景,也许有更简单的方法。
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;
}
这并不是很有意义。由于C#是强类型语言,在编译时你不会知道对象的样子,因此你无法使用它。
也许你最好创建一个使用字典的对象,其中键是节点名称。然后你可以查询字典以查找它具有哪些属性。
Person
),而不是创建新类型的实例。 - Devendra D. Chavan