NetDataContractSerializer を使用してみてください-
NetDataContractSerializer は、1 つの重要な点で DataContractSerializer と異なります。NetDataContractSerializer には、シリアル化された XML に CLR 型情報が含まれていますが、DataContractSerializer には含まれていません。したがって、NetDataContractSerializer は、シリアル化と逆シリアル化の両方の端が同じ CLR 型を共有している場合にのみ使用できます。
シリアライザーは、DataContractAttribute または SerializableAttribute 属性が適用された型をシリアル化できます。また、ISerializable を実装する型をシリアル化します。
コード例:
[DataContract(Name = "Customer", Namespace = "http://www.contoso.com")]
class Person : IExtensibleDataObject
{
[DataMember()]
public string FirstName;
[DataMember]
public string LastName;
[DataMember()]
public int ID;
public Person(string newfName, string newLName, int newID)
{
FirstName = newfName;
LastName = newLName;
ID = newID;
}
private ExtensionDataObject extensionData_Value;
public ExtensionDataObject ExtensionData
{
get { return extensionData_Value; }
set { extensionData_Value = value; }
}
}
シリアル化:
Person p1 = new Person("Zighetti", "Barbara", 101);
FileStream fs = new FileStream(fileName, FileMode.Create);
XmlDictionaryWriter writer = XmlDictionaryWriter.CreateTextWriter(fs);
NetDataContractSerializer ser = new NetDataContractSerializer();
ser.WriteObject(writer, p1);
MSDNリンクはこちら