2010-09-30 18 views
5

WCF będzie pasował do tego:WCF/Rest/UriTemplate lista parametrów ciągu znaków o zmiennej długości zmiennej?

http://localhost:8888/test/blahFirst/blahSecond/sdfsdf,wwewe

do tego:

[OperationContract] 
[WebGet(UriTemplate = "test/{first}/{second}/{val1},{val2}")] 
string GetVal(string first, string second, string val1, string val2); 

Czy istnieje sposób, aby VA11, wart2 być zmienną długość lista parametrów? Więc może to być val1, ...., valN? I kończy się z metodą serwisową, taką jak:

string GetVal(string first, string second, List<string> params); 

Albo coś podobnego?

Odpowiedz

6

Po prostu POBIERZ prosty ciąg, a następnie przekonwertuj go do tablicy (lub listy) w metodzie, korzystając z metody podziału.

interfejs powinien wyglądać mniej więcej tak:

[OperationContract] 
[WebGet(UriTemplate = "test/{first}/{second}/{val1}")] 
string GetVal(string first, string second, string val1); 

implementacji:

public string GetVal(string first, string second, string paramArray) 
    { 
     string[] parameters = paramArray.Split(','); 

     foreach (string parameter in parameters) 
     { 
      Console.WriteLine(parameter); 
     } 

     return "Hello"; 
    } 

i nazywają to tak w przeglądarce:

http://localhost:8731/MyServer/test/first/second/1,2,3 

Take a look at the MSDN forum for a detailed answer

+0

Basicall y Znalazłem odpowiedź na moje pytanie: "Nie, nie możesz tego zrobić bezpośrednio". Ale tak, twoja metoda zadziała. Mimo to dam mu czek. – MonkeyWrench

Powiązane problemy