如何将复杂模型序列化为xml格式wcf

时间:2017-03-25 19:30:56

标签: wcf soapui wcf-data-services wcf-ria-services wcf-binding

我正在开发一个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提前

1 个答案:

答案 0 :(得分:0)

尝试将DataContract属性添加到类级别的Employee,将DataMember属性添加到要序列化的属性。如果它有自己的复杂属性类型,它们也可能需要进行类似的装饰。 WCF中的默认序列化程序是DataContract序列化程序FYI。