我有Prospect和联系课程。我需要在2个差异格式的2个差异处使用序列化的前景。第一种格式是使用XML Serialization的API方法实现的。对于第二个,我必须显示编辑器的前景,它有diff模式。所有属性都显示为独立元素,如XML下面。
格式#1
<prospect>
<ID>1</ID>
<REPNAME>TEST</REPNAME>
<contact>
<FNAME>TEST-FNAME</FNAME>
<LNAME>TEST-LNAME</LNAME>
</contact>
</prospect>
格式#2
<prospect>
<Elemant Name="ID" value="1" />
<Element Name="REPNAME" value="TEST" />
<contact>
<Element Name="FNAME" value="TEST-FNAME" />
<Element Name="LNAME" value="TEST-LNAME" />
</contact>
</prospect>
[XmlElement(Prospect)]
public class prospect
{
private string id, repName;
private contact c;
[xmlElement(PID)]
public string ID {}
[xmlElement(RepresentName)]
public string REPNAME {}
}
[XmlElement(Contact)]
public contact Con
{
private string fname,lname;
[xmlElement(FirstName)]
public string FNAME {}
[xmlElement(LastName)]
public string LNAME {}
}
我的问题是 - 通过添加元素(可自由选择的)类型Prospect&amp;联系类,我可以实现2种不同格式的序列化XML吗?我需要做什么?我应该能够在2种格式之间进行转换。我不想添加新的数据对象集来实现2种格式。如果我写了一个xml自定义seriliazer,那么在所有这些选项中最好的选择。
答案 0 :(得分:0)
您必须为两种不同的血清化编写自定义序列化程序。如果要仅在一个类中序列化所有类,可以编写一个通用的serilization类。为此,您可以在System.Xml.Serilization命名空间中使用XmlSerializer类。
示例代码:
XmlSerializer serializer = new XmlSerializer(typeof(T)); serializer.Serialize(writer, obj);
有关更多信息和示例: