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)の必要性は、このクラスに、それを必要とする可能性のあるすべてのクラスと、データを操作するための2つの特定のメソッドを提供する必要があることを意味します。
好き:
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);
}
}
それは実行可能であり、いくつかの単純なコピーと貼り付けですが、多くの不要な作業のようです。