WebGet und nicht WebGet Methoden in WCF Rest Service

Folgenden ist mein Vertrag und die OperationContracts, mein Problem ist, wenn ich werde mit WebGet-Attribut auf alle Methoden mein service ist in Ordnung, wenn ich entfernen WebGet-Attribut auf einen der OperationContracts im immer folgende Fehlermeldung.

Betrieb 'ProductDetails' von
Vertrag 'IDemo' gibt mehrere
Parameter request-body zu sein
serialisiert, ohne irgendwelche wrapper
Elemente. Höchstens eine Körper-parameter
serialisiert werden kann, ohne wrapper
Elemente. Entweder entfernen Sie die extra Körper
Parameter oder legen Sie die BodyStyle
Immobilie auf der
WebGetAttribute/WebInvokeAttribute zu
Gewickelt.

Diese sind meine Methoden

string AddNumbers(int x,int y);  --- using [WebGet]

string SubtractNumbers(int x, int y); -- using [WebGet]

String ProductDetails(string sName, int cost, int Quntity, string binding); -- not using using [WebGet]

CompositeType GetDataUsingDataContract(CompositeType composite); -- not using [WebGet]

Ist es zwingend erforderlich, zu enthalten [WebGet] - Attribut auf alle den Betrieb Vertrag, wenn wir gehen "WebHttpbinding"??.

public interface IService1
{
    [OperationContract]        
    string GetData(int value,string binding);

    [OperationContract]
    [WebGet(BodyStyle = WebMessageBodyStyle.Bare,
           ResponseFormat = WebMessageFormat.Xml,
           UriTemplate = "/Add?num1={x}&num2={y}")]
    string AddNumbers(int x,int y);

    [OperationContract]
    [WebGet(BodyStyle = WebMessageBodyStyle.Bare,
           ResponseFormat = WebMessageFormat.Xml,
           UriTemplate = "/Subtract?num1={x}&num2={y}")]
    string SubtractNumbers(int x, int y);

    [OperationContract]
    String ProductDetails(string sName, int cost, int Quntity, string binding);

    [OperationContract]
    CompositeType GetDataUsingDataContract(CompositeType composite);
}
InformationsquelleAutor venkat | 2011-05-06
Schreibe einen Kommentar