2011-08-24 7 views
1

J'ai un problème en utilisant un type de données personnalisé dans une méthode de service WCF, ci-dessous est mon exemple de codeWCF contrat de service

[ServiceContract()] 
public class SampleServise : ISampleServise 
{ 
    void object GetSomething(ICustomData objectData) 
    { 
     // Do Something 
    } 
} 

Que dois-je faire avec l'interface de classe ICustomData?

Merci Afshin

Répondre

2

WCF est basé sur le passage de messages, et que le passage de messages est modélisé en utilisant le schéma XML (XSD). En tant que tel, tout ce qui peut être exprimé dans le schéma XML peut être utilisé dans WCF.

Cela signifie également que les interfaces ne sont pas prises en charge. Vous devez utiliser des types réels et concrets pour les paramètres de vos méthodes de service WCF.

Dans votre cas, créez une classe concrète qui implémente ICustomData, puis utilisez cette classe comme type de paramètre.

Pour une bonne référence, lisez MSDN Designing Service Contracts qui indique les paramètres:

Paramètres et valeurs renvoyées

Chaque opération a une valeur de retour et un paramètre, même si ceux-ci sont vide. Toutefois, contrairement à une méthode locale, dans laquelle vous pouvez passer les références aux objets d'un objet à un autre, les opérations de service ne transmettent pas les références aux objets. Au lieu de cela, ils passent des copies des objets.

Ceci est important car chaque type utilisé dans un paramètre ou de retour valeur doit être sérialisable;, c'est-à-dire, il doit être possible de convertir un objet de ce type en un flux d'octets et d'un flux d'octets en un objet.

Questions connexes