无法使用带有wsHttpBinging </filterdata>的WCF传递List <filterdata>

时间:2014-01-21 05:55:51

标签: wcf list serialization datacontract transport

我无法使用带有wsHttpBinging的WCF传递List。 List是FilterResponse类的属性。 得到以下错误。

- 无法从传输连接读取数据:远程主机强行关闭现有连接。

//以下是代码。

[DataContract(Namespace = "Abc.Wao.Entity.Response")]
[CollectionDataContract]`

public class FilterResponse : Alcoa.Wao.Entity.Response.Response
{
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1002:DoNotExposeGenericLists"), DataMember]
    public List<FilterData> FilterData { get; set; }
}


[KnownType(typeof(FilterResponse))]
[CollectionDataContract]
[DataContract(Namespace = "Abc.Wao.Entity.Response")]
public class Response
{
    public Response()
    { }

    [DataMember]
    public string AuthToken { get; set; }
    [DataMember]
    public string Fault { get; set; }
    [DataMember]
    public Exception Exception { get; set; }
    [DataMember]
    public string SessionContext { get; set; }
}

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, ConcurrencyMode =   ConcurrencyMode.Multiple)]
public class WaoService : IWaoService
{

    public FilterResponse GetFilterDetails()
    {
        FilterResponse res = null;
        //Call factory
        res =  Abc.Wao.Factory.CommonFactory.GetFilterDetails();
        return res;
    }
}

// --------------------------------------------- ---------

[ServiceContract]
[ServiceKnownType(typeof(FilterResponse))]
[ServiceKnownType(typeof(Response))]
public interface IWaoService
{
   [OperationContract]
   FilterResponse GetFilterDetails();
}

1 个答案:

答案 0 :(得分:0)

DataContract中的属性缺少DataMember属性:

[DataMember]
public List<FilterData> FilterData { get; set; }