2009-03-16 4 views
1

Je suis relativement nouveau à WCF et j'ai créé quelques services, donc j'ai de l'expérience avec WCF. Je souhaite créer plusieurs services pouvant utiliser un seul FaultContract. J'ai remarqué que le type Fault doit être dans le même projet pour utiliser les attributs [DataContract] et membres. Est-ce vrai ou y a-t-il quelque chose que je puisse faire pour ajouter les contrats? Voici ce que je voudrais faire:WCF FaultContract et où placer la classe Fault (création de plusieurs services utilisant un FaultContract)

namespace Service1 {

[ServiceContract()] 
iService1Interface1{ 
     [OperationContract()] 
     [FaultContract(typeOf(ServiceFault.Fault)] 
     DoTheWork1(); 
} 

}

namespace Service2 {

[ServiceContract()] 
iService1Interface2{ 
     [OperationContract()] 
     [FaultContract(typeOf(ServiceFaults.Fault)] 
     DoTheWork2(); 
} 

}

ServiceFaults NameSpace { [DataContract] Fault de classe publique { défaut publique (message) {// construire un message
}

 [DataMember] 
     public Message{} 
    } 

}

Est-ce sens? Merci

Daniel

Répondre

1

Je pensais avoir la référence System.Runtime.Serialization référencée dans mon projet, mais elle n'était pas là. Si bête!

0

Je ne crois pas qu'il a besoin d'être dans le même projet. Les projets sont des choses Visual Studio, pas des choses .NET. Que se passe-t-il lorsque vous utilisez des projets distincts? Est-ce que vous spécifiez le type incluant l'espace de noms? Faites-vous référence à l'assemblage contenant les contrats de défaut?

+0

Je ne peux pas décorer la classe ou protéger, pour la classe de défaut, avec DataContract/DataMember. Ou ai-je même besoin d'eux? je pourrais mal comprendre leur but. – DDiVita

Questions connexes