2009-02-13 12 views

cevap

67

Yanlış hatırlamıyorsam WebGet veya WebInvoke kullanırken, yoldaki UriTemplate değişkenler her zaman dizeleri çözümlemek. UriTemplate değişkenlerini UriTemplate'in sorgu kısmında olduklarında int, long vb. dthrasher belirtildiği gibi

+0

Tırtıklı bir dizi kullanıyorum ve bu mesajı gösteriyor. Tırtıklı diziyi paramslara geçirmenin bir yolu var mı? Ben bu dize MyMethod gibi yapıyorum (string [] [] jaggedArray); – CodeIt

3

Maalesef yapmanız gerekir Eğer UriTemplate kullanmak istiyorsanız kendinizi ayrıştırma.

72

, URI sorgu kısmına hareket kimliği. Bu benim için çalıştı:

[OperationContract] 
[WebGet(UriTemplate = "/foo?id={id}")] 
string GetFoo(int id); 

Bkz "URI şeması" wikipedia fazla bilgi için bir URI farklı bölgelerinde hakkında: Diğerleri de belirtildiği gibi, sigara geçmesi amacıyla sorgu dizelerini kullanması gerekir http://en.wikipedia.org/wiki/URI_scheme

+0

Teşekkürler! Bu ayrıca belirli bir sıradaki parametreler için req'i kaldırır. – Jerry

+3

Örnek sağladığınız için teşekkür ederiz. – Cody

+0

Teşekkürler –

4

-pring parametreleri. Aşağıdaki makalede ayrıştırma nasıl yapılır. “Doğru” WCF genişletilebilirlik geri dönersek

WCF Extensibility – QueryStringConverter

, bu haftaki sonrası QueryStringConverter ilgili. WCF içinde QueryStringConverter yalnızca uç noktaları kullanılır - Bu amacı oldukça spesifik ( durumlarda geniş bir yelpazede için kullanılabilecek daha önce görülmemiş diğer genişletilebilirlik noktaları, aksine) olduğu gibi, aslında ele alınacak basit bir konudur WebHttpBehavior bunlara uygulanmıştır. Ve hatta sadece sorgu dizeleri yoluyla geçirilmesi parametrelere sahip operasyonlar üzerinde olanlar içinde (ya operasyonlarda [WebGet] veya açıkça sorgu dizesine bazı parametreleri bağlayan bir UriTemplate ile [WebInvoke] operasyon ile işaretlenmiş parametrelerle ) . Bir QueryStringConverter operasyon parametreleri ve bir sorgu dizesinde onların temsili arasındaki dönüştürebilirsiniz parçadır.

...

WebHttpBehavior tarafından kullanılan varsayılan QueryStringConverter, tüm basit sayısal türleri (Byte, SByte, Int16, Int32, Int64, UInt16, Uınt32, UInt64, Tek dahil doğal çeşitli destekler ile DataContractSerializer “ilkel” olarak değerlendirdiği Çift, Ondalık), Boole Char, Nesne, string, DateTime, DateTimeOffset, ZamanGeçişi, GUID, Uri, ve esasen Byte (diziler, her türlü , XmlQualifiedName istisnası). Sayım türleri ( kullanılan numaralandırma değerleri dize gösterimine) varsayılan tarafından desteklenen da bulunmaktadır. (Aşağıda üzerinde daha fazla) ve dizeleri türü dönüştürebilirsiniz bir çevirici ile bir [TypeConverter] niteliğini beyan herhangi bir - Son olarak, varsayılan QueryStringConverter tarafından desteklenen türlerinden başka dizi de vardır.

İlgili konular