2009-03-16 2 views
1

Ich bin ziemlich neu in WCF und habe ein paar Dienste erstellt, so habe ich einige Erfahrung mit WCF. Ich möchte mehrere Dienste erstellen, die einen einzigen FaultContract verwenden können. Ich habe festgestellt, dass sich der Fehlertyp im selben Projekt befinden muss, um die Attribute [DataContract] und member zu verwenden. Ist das wahr oder kann ich etwas tun, um die Verträge hinzuzufügen? Hier ist, was würde ich tun:WCF FaultContract und wo Fault Class (Erstellen mehrerer Dienste, die einen FaultContract verwenden)

Namespace Dienste1 {

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

}

Namespace Service2 {

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

}

Namespace ServiceFaults { [Datacontract] öffentliche Klasse Fehler { öffentlich Fehler (Meldung) {// bauen eine Nachricht
}

 [DataMember] 
     public Message{} 
    } 

}

Does this Sinn? Dank

Daniel

Antwort

1

Ich dachte, ich hatte die System.Runtime.Serialization in meinem Projekt verwiesen, aber es war nicht da. So dumm!

0

Ich glaube nicht, dass es im selben Projekt sein muss. Projekte sind Visual Studio Dinge, nicht .NET Sachen.

Was passiert, wenn Sie separate Projekte verwenden? Geben Sie den Typ einschließlich des Namespace an? Referenzieren Sie die Baugruppe mit den Fehlerverträgen?

+0

Ich kann die Klasse oder die Proties für die Fehlerklasse nicht mit DataContract/DataMember dekorieren. Oder brauche ich sie überhaupt? Ich könnte ihre Absicht missverstehen. – DDiVita

Verwandte Themen