0

我有一个 WCF 客户端,并且 Endpoint 刚刚使用新方法 (OperationContract) 进行了升级。我想编写一个通用方法来处理来自这个新方法以及端点上现有方法的响应。

我正在尝试创建一个“基本”响应类并向其添加 WCF 端点提供的通用属性,但我注意到在我的处理程序方法中,这些属性没有被保留。

我希望所有响应都继承自的类的代码如下所示:

public class ResponseBase
{
    public string[] ItemsReturned;
    public bool ItemsWereAvailable;

}

因此,我添加了部分声明以将其添加到端点中的对象上。

public partial class RetrieveResponse :ResponseBase
{
}

public partial class RetrieveResponse2 :ResponseBase
{
}

这样我就有了一个只接受“ResponseBase”作为其输入的处理程序方法。我做这一切都错了吗?

4

1 回答 1

1

其实例将是操作合同的返回值和/或参数的任何类都应使用DataContract属性和属性进行修饰,如DataMembers

[DataContract]
public class ResponseBase
{
    [DataMember]
    public string[] ItemsReturned { get; set; }

    [DataMember]
    public bool ItemsWereAvailable { get; set; }

}

http://msdn.microsoft.com/en-us/library/ms733127.aspx

如果不是,DataContractSerializer不会序列化它们。

于 2012-08-03T15:10:38.477 回答