9

Visual Studio 2008'de bir WCF hizmeti başvurusu eklediğimde, Service Reference \ ServiceReferenceNamespace adlı bir dizin oluşturulur.Bu WCF hizmet referans dosyaları nedir

Bu dizinde Service.xsd, Service1.xsd, Service2.xsd, Service3.xsd ve Service4.xsd adlı dosyalar var. Dosyalar çift değil - farklı dosyalar farklı tip ve elemanlar tanımlar. Hizmet refernece'yi ilk oluşturduğumda, daha fazla DataContract ve OperationContracts eklediğimde sadece bir dosya vardı, ancak daha fazla Hizmet * eklendi.

Sadece bir tane değil, 5 farklı dosyanın üretilmesi biraz garip görünüyor. Servis referansını (ve dolayısıyla dizini) silip tekrar eklediğimde aynı dosyalar tekrar eklenir.

Herkes neden birkaç dosyanın oluşturulup oluşturulmadığını açıklayabilir mi?

cevap

4

Hizmet Ekleme Referansı yaptığınızda, VS ilk önce meta verileri - WSDL ve XSD dosyaları olarak - hizmeti açıklar. Bunlar ServiceReference dizininde saklanır. Daha sonra VS, bu dosyaları girdi olarak kullanarak, Reference.cs veya .vb'yi çıktı olarak üreten bir kod oluşturma adımı çalıştırır.

+0

Belki de net değildim. Benim soru neden Service1.xsd, Service2.xsd, Service3.xsd ve Service4.xsd ve sadece Service.xsd vardı. – Martin

+3

Tür adı alanı başına bir xsd dosyası alırsınız. DataContractSerializer'ı kullanan WCF hizmetleri için, tipik olarak, türlerinizin kullandığı CLR ad alanı başına tek bir XSD ad alanı alırsınız. Ayrıca, yerleşik türler için bir tane daha eklersiniz. Tüm uygulama tanımlı türlerinizi bir XSD ad alanına koymak istiyorsanız, bunu herhangi bir URI'ye ayarlamak için [DataContract (Namespace = "...")] kullanabilirsiniz. – alexdej

İlgili konular