wcf通用datacontract没有被序列化

时间:2010-10-20 16:31:37

标签: wcf serialization generics datacontract

我有以下数据结构:

 [DataContract]
 public class OperationResult<T>
 {
    public OperationResult() { }

    [DataMember]
    public Int32 OpResult
    {
        get;set;
    }

    [DataMember]
    public IList<T> OperationResults
    {
        get;set;
    }

    public static OperationResult<T> Success(IList<T> results, int numberOfChangedObjects)
    {
        OperationResult<T> result = new OperationResult<T>();

        result.OpResult = 1;
        result.OperationResults = results;

        return result;
    }        
}

当我更新服务引用时,该类不会被序列化。在服务中我使用的是所谓的封闭泛型类型 例如

  [OperationContract]
  public OperationResult<Int32> SometTestMethod()
   {
       return new OperationResult<Int32>
                  {
                      OpResult = 1,
                      OperationResults = new List<Int32> {1, 2, 3}
                  };
   }

该方法已公开,但在这种情况下返回类型OperationResult是不可访问的。 我在做什么wrog? 感谢

1 个答案:

答案 0 :(得分:1)

我刚刚意识到。我找不到类型的原因是因为我正在寻找一个OperationResult。在序列化后,它被命名为OperationResultOfInt。