MessageContract返回一个多态对象

时间:2011-03-01 23:11:36

标签: wcf inheritance polymorphism axis messagecontract

我有这样的服务

[ServiceContract]
public interface IMyService {
    [OperationContractAttribute(Action = "*")]
    GenericResponse MyMethod(Message myRequest);
}
[MessageContract]
public class MyResponse : GenericResponse {
  // implementation here
}
[MessageContract]
public class GenericResponse{
  //implementation here
}
public class MyService: IMyService {
  public GenericResponse MyMethod(Message myRequest) {
    MyResponse response = new Response();
    //implementation here
    return response;
}

但生成的XML不会序列化MyResponse,而是序列化GenericResponse对象,如下所示:

<s:Body><GenericResponse/></s:Body>

但我需要:

<s:Body><MyResponse/></s:Body>

因为那是我要归还的类型。

我做错了什么?

我不能在我的实现上使用[DataContract],它可能是MessageContractors或自定义xml序列化。

0 个答案:

没有答案