Próbuję utworzyć usługę WCF, która zapewnia punkt końcowy SOAP i JSON. Do odwzorowania parametrów adresu URL żądania na parametry metody używam metody
.Parametry URI mapy do właściwości obiektu parametru?
Działa to dobrze w przypadku metod oczekujących parametrów prostych typów danych.
jednak następująca metoda oczekuje złożony obiekt i nie chcę go zmienić ze względu na SOAP-ramach usługi:
[OperationContract]
Person Test(TestParameters parameters);
podczas TestParameters wygląda (z większej liczby nieruchomości):
[DataContract]
public class TestParameters
{
[DataMember]
public string First
{
get;
set;
}
[DataMember]
public string Second
{
get;
set;
}
}
po wywołaniu metody poprzez GET teraz chciałbym być w stanie zainicjować parameters.First
i parameters.Second
z żądania URI, np
/Test?first=Foo&second=Bar
Próbowałem już stosowania
[WebGet(UriTemplate = "/Test?first={parameters.First}&second={parameters.Second})]
metody.
Jednak ta składnia nie jest obsługiwana przez WCF. Komunikat o błędzie mówi:
System.InvalidOperationException: „test” Praca w umowie „IService1” ma UriTemplate że oczekuje parametr o nazwie „PARAMETERS.FIRST”, ale nie ma parametr wejściowy z tym nazwiskiem operacji.
Czy istnieje jakakolwiek inna składnia, która pozwala na sformułowanie odwzorowania parametru URI na właściwości obiektów parametrów?
W przeciwnym razie, czy wiesz, czy to zachowanie można łatwo dodać?
Z góry dziękujemy za odpowiedzi!