我有一個類,我實例化保存或加載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);
}
}
這是可行的,只是一些簡單的複製和粘貼,但好像很多不必要的工作。
感謝您,您的第一篇文章是我需要得到它運行踢你的編輯證實了它。 – Dialock