我正在开发一个wcf应用程序,它将c#请求模型作为输入,并在从数据库填充数据后返回复杂响应c#模型。我正在使用SOAP UI客户端工具来测试我的服务。
早些时候我用XmlSerializerFormat属性修改了我的合同,在提交请求后我能够在SOAP UI工具的Result选项卡中获得响应。以下是它的代码片段:
[ServiceContract]
[XmlSerializerFormat]
public interface IService1
{
[OperationContract]
Employee GetData(Employee value);
}
[DataContract]
public class Employee
{
[DataMember]
public int Id { get; set; }
[DataMember]
public string Name { get; set; }
public string Address { get; set; }
}
但是现在由于某些原因我从合同中删除了XmlSerializerFormat属性,我希望默认的序列化程序来处理它。但是当我从客户端提交请求时,我的响应模型会填充结果,但SOAP UI的响应选项卡显示空响应。
在响应模型填充期间,当我从响应模型中删除某些属性时,我能够在SOAP UI工具的响应选项卡中看到结果。
在序列化我的模型的某些属性时,默认序列化程序是否面临一些问题。除XmlSerializerFormat之外的任何其他属性?
请让我知道我缺少的地方或XmlSerializerFormat属性的替代品。
Thnx提前
答案 0 :(得分:0)
尝试将DataContract属性添加到类级别的Employee,将DataMember属性添加到要序列化的属性。如果它有自己的复杂属性类型,它们也可能需要进行类似的装饰。 WCF中的默认序列化程序是DataContract序列化程序FYI。