Gereksinim: Bir dosya paylaşımı konumdan WSDL dosyasını almak çalışma zamanı yani en SABUN Web hizmetinin WSDL vermektüketin ve Runtime de SABUN WebServices Çağır - Dinamik Web Servis istemcisi WSDL dosyasından
- Müşteri.
- WSDL'yi tüketin ve Müşteri tarafından UI'de seçilen Yöntemi çağırın ve yanıtı işleyin.
WSDL barındırılmadığı için MetadataExchangeClient kullanamıyorum.
Uygulama:
var serviceDescription = ServiceDescription.Read(@"C:\Contacts.WSDL");
var metadataSection = new MetadataSection
{
Dialect = MetadataSection.ServiceDescriptionDialect,
Identifier = serviceDescription.TargetNamespace,
Metadata = serviceDescription
};
var metadataSections = new List<MetadataSection> {metadataSection};
var metadatSet = new MetadataSet(metadataSections);
var wsdlImporter = new WsdlImporter(metadatSet);
var services = wsdlImporter.ImportAllEndpoints();
Yol Blokları:
- Yukarıdaki kod hiç hizmet uç noktalarını çıkaramamıştır. Yani, bir servis bitiş noktasını el ile oluşturmam gerekiyordu.
- Bütün yukarıda WSDL içerdiği yöntem ve ilgili girişler üzerinden liste olamazdı/çıkışa (değişken operationName ve aşağıdaki operationParameters kullanılmak üzere)
object retVal = instance.GetType().GetMethod(operationName) .Invoke(instance, operationParameters); // Invoke
WSDL'den elle ayrıştırılan işlem adını kodlayarak zorlamayı denedim, ancak sonra parametrelerde başarısız oldu. Bu aşağıdaki gibi hiyerarşi içeren karmaşık bir tür bekliyor: -> ListOfContacts -> İletişim -
ContactInput> ad, soyadı
Sonraki Adımlar:
birisi Yapabilseydim Yol engellerini düzeltmeme yardım et, sonra yukarıdaki yaklaşıma devam edebilirim. Else
, ben zamanında
Teşekkür, Dev svcutil.exe kullanımıyla ilgili araştırma başlamak zorunda
bu bu makalede açıklanan yapmak için bir çözüm var
teşekkürler. Bunu dener ve benim için çalışırsa günceller. – Dev