2010-10-20 60 views
2

我有以下数据结构:WCF通用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

我刚刚意识到。我找不到该类型的原因是因为我正在查找OperationResult。当它被序列化时,它被命名为OperationResultOfInt。