2016-08-11 40 views
8

Bir WSDL ve model ve renk verilerini içeren işlem AddCar'ı uygulayan tüketici/istemci yazdım. Artık bir WS yapımcısı/sunucusu, aynı zamanda uzunluk için veriye sahip olmak istiyor. Diğer üreticilerin, uygulama dış kaynak kullanımı nedeniyle bu değişikliğe uyum sağlamada zorluklar yaşadığını düşünüyorum. Benim seçenekler şunlardır:Başka sağlayıcılar olduğunda 1 sağlayıcı için tüketici ucunda WS işlemi nasıl eklenir?

  1. Sadece opsiyonel uzunlukta WSDL güncellemek aynı işlemle WSDL ve tüketici kodunun yeni operasyon AddCarWithLength
  2. Yap 2 versiyonlarını olun ve sadece istediği üretici için operasyon verilerini içerir o.
  3. Sadece 0-N adı-vaue çifti elemanları ile WSDL güncellemek ve sadece istediği üretici için o operasyon verileri içerir. bunu güncellemek için WS yapımcı uygulanan şirket almak
  4. Talep müşteriler.

Seçenekler: İki kod setleri olacağını böylece

  1. Ben tüketici/istemci C# sınıfları yarattı sorusuna
  2. dışında. ben hala versiyon yapımcı/sunucu sadece ben konuşmak hangi yapımcı/sunucu bilmek zorunda
  3. araçları kullanmaktadır (belki yapılandırma parametresi veya smthn ile) bilmek gerekir. 3 ile aynı
  4. ancak gelecekteki genişletilebilirlik
  5. sorunlu olabilir sağlayacak

Soru: bunu yapmak için doğru/iyi yolu nedir gerçekçi olabilir haberdar olmak için tüm üreticilere talep ne zaman?

cevap

0

WSDL değerli tanımları için bilinir. İlk hizmetlerde her zaman açık bir kullanım ve gelecek göz önünde bulundurularak tasarlanmalıdır. Her neyse, şimdi benim anlayışım mevcut WCF hizmetinize bir özellik (veri öğesi - uzunluk) eklemektir. Benim önerim olurdu

  1. Analiz ve senin özel bir sınıf ekleyin ve veri sözleşme olarak adlandırabilir ve WCF operasyona ekleyebilir ve yeni bir arayüz/operasyon sözleşme olarak maruz kalmaktadır.

Örn. Sınıfı araçta, bir veri üyesine Özellikler olarak sahip olursunuz. özelliklerinde ile Ayrıca böylece gelecekte kullanmadan bir Dictionary<string,string> CustomAttributes; eklemek vb uzunluk, genişlik, renk, ağırlık, gibi tüm analiz sonucu öğelerinin tanımlar.

    Yukarıda
  1. benzer şekilde, ama çok zaman yoksa. herhangi bir analizle birlikte bir Dictionary<string,string> Parameters; ekleyin ve yeni bir sözleşme ortaya çıkarın ve bunu kullanın.
+0

teşekkürler! Top-> Down gelişimini kullanıyorum, böylece WSDL'deki değişiklikleri yapıyorum ve sonra kodu üretiyorum. Sen benim seçeneği öneriyorsun: "4. Sadece 0-N adı-vaue çifti elemanları ile WSDL güncellemek ve sadece istediği üretici için operasyon verileri içerir." Ancak ana soruya değil, üreticilerin A.K.A'ya nasıl bakmalıyım?Değişimlere uyum sağlayamayan Web Servisleri. –