2010-10-20 6 views
2

J'ai la structure de données suivantes:DataContract WCF générique ne soit pas sérialisé

[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; 
    }   
} 

Lorsque je mets à jour la référence de service, la classe ne soit pas sérialisé. Dans le service, j'utilise un soi-disant type générique fermé par exemple.

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

La méthode est exposée, mais le type de retour OperationResult n'est pas accessible dans ce cas. Que fais-je wrog? Merci

Répondre

1

Je viens de réaliser. La raison pour laquelle je n'ai pas trouvé le type est parce que je cherchais un OperationResult. Comme il a été sérialisé, il a été nommé OperationResultOfInt.