我有一个类,我实例化以保存或加载 xml 数据。
例如:
serilizer = new ObjectSerializer();
npcEntityData = serilizer.LoadNPCData(fileName);
去:
namespace TDIYCSharpLib
{
public class ObjectSerializer
{
NPCBaseInfo NPC;
MonsterBaseInfo monster;
public void SaveNPCData(object objGraph, string fileName)
{
XmlSerializer xmlFormat = new XmlSerializer(typeof(NPCBaseInfo));
using(Stream fileStream = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None))
{
xmlFormat.Serialize(fileStream, objGraph);
}
}
public NPCBaseInfo LoadNPCData(string fileName)
{
XmlSerializer xmlDeformat = new XmlSerializer(typeof(NPCBaseInfo));
using (StreamReader fileStream = new StreamReader(fileName))
{
NPC = (NPCBaseInfo)xmlDeformat.Deserialize(fileStream);
}
return NPC;
}
}
}
这就像它所写的那样工作;然而,XmlSerializer 对 typeof(SomeClass) 的需求意味着我必须为这个类提供所有可能需要它的类以及两个特定的方法来操作数据。
喜欢:
public void SaveMonsterData(object objGraph, string fileName)
{
XmlSerializer xmlFormat = new XmlSerializer(typeof(MonsterBaseInfo));
using (Stream fileStream = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None))
{
xmlFormat.Serialize(fileStream, objGraph);
}
}
这是可行的,只是一些简单的复制和粘贴,但似乎是很多不必要的工作。