C# 哪些必须与XmlSerializer和WCF-DataContract或MessageContract一起使用?
我需要编写WCF服务,它将把.xml文件反序列化到我的自定义CALS中,然后对该数据执行一些操作。我已经编写了这个应用程序的测试版本,它使用控制台而不是WCF。下面是我的代码的样子:C# 哪些必须与XmlSerializer和WCF-DataContract或MessageContract一起使用?,c#,wcf,xml-serialization,C#,Wcf,Xml Serialization,我需要编写WCF服务,它将把.xml文件反序列化到我的自定义CALS中,然后对该数据执行一些操作。我已经编写了这个应用程序的测试版本,它使用控制台而不是WCF。下面是我的代码的样子: [Serializable] public class ErrorMsgElement { [XmlElement("Sender")] public string SenderOfMessage{ get; set; } [XmlElement()] public Int64 U
[Serializable]
public class ErrorMsgElement
{
[XmlElement("Sender")]
public string SenderOfMessage{ get; set; }
[XmlElement()]
public Int64 UserID { get; set; }
[XmlElement()]
public Int64 SerialNumber { get; set; }
[XmlElement("DateTime")]
public DateTime DateAndTimeOfMessage { get; set; }
}
[Serializable]
[XmlRoot("Root")]
public class ErrorMessage
{
[XmlElement("Header")]
public string HeaderOfFile { get; set; }
[XmlElement("ErrorMsg")]
public ErrorMsgElement msgElent { get; set; }
}
和主代码
它在控制台应用程序中运行良好。现在我需要在WCF服务中编写相同的逻辑。但我不知道应该使用什么-[Serializable]、[DataContact]、[MessageContract]或其他什么?。考虑到在我的自定义课程中,我也有一些[XLARLAR] AltBuTes。如果我将[DataContract]atribute添加到我的ErrorMessage类中,我是否必须向ErrorMsgElement添加如下相同的属性
[DataContract]
[Serializable]
public class ErrorMsgElement
{
...
}
[DataContract]
[Serializable]
[XmlRoot("Root")]
public class ErrorMessage
{
...
[DataMember]
[XmlElement("ErrorMsg")]
public ErrorMsgElement msgElent { get; set; }
}
所有答案都非常感谢。提前感谢。在wcf
[DataContact]
和DataContractSerializer
中,建议您执行以下操作。但您也可以使用XmlSerializer
,这实际上只是您的选择(使用第一个或第二个选项不会影响应用程序的性能)
编辑:
当您向类添加DataContract
属性时,您不必再添加Serializable
属性,相同的类DataContract
等于Serializable
请检查此项以获得有关的答案
[DataContract]
[Serializable]
public class ErrorMsgElement
{
...
}
[DataContract]
[Serializable]
[XmlRoot("Root")]
public class ErrorMessage
{
...
[DataMember]
[XmlElement("ErrorMsg")]
public ErrorMsgElement msgElent { get; set; }
}