1

我的班级调用了一个具有以下结构的 Web 服务

    [DataContract]
    public class ResponseClassContainer
    {
        [DataMember]
        public ResponseClass d { get; set; }
    }

    [DataContract]
    public class ResponseClass
    {
        [DataMember]
        public int ResponseCode { get; set; }

        [DataMember]
        public string ResponseMessage { get; set; }

        [DataMember]
        public object Response { get; set; }
    }

该容器是必需的,因为返回的 json 返回 {"d":{....}}

如果服务返回成功,则对象 Response 将填充任何被称为序列化 json 的对象。

问题是公共对象响应。因为它是一个对象,它几乎可以是任何东西,但我发现我必须明确地说它是 foo 类型

[DataMember]
public foo Response {get;set;}

因为我可以反序列化一大堆类,有没有办法我可以拥有

[DataMember]
public T Response {get;set;} 
4

1 回答 1

0

你可以有

[DataMember]
public BaseResponse Response { get; set; }

其中 BaseResponse 是类

[DataContract]
[KnownType(typeof(Child1))]
[KnownType(typeof(Child2))]
public class BaseResponse

和 Child1/Child2 是类

[DataContract]
public class Child1 :  BaseResponse
于 2013-11-08T16:16:40.680 回答