سؤال
وأشعر بأن هذا هو سؤال غبي حتى قبل أن تسأل، ولكن ذهني لا يعمل بشكل جيد للغاية في الوقت الحالي. لقد اثنين من خدمات WCF "CountryService" و "FloristService".
والآن CountryService ديه الأسلوب التالي:
IList<CountryDTO> GetAllCountries();
وبالإضافة إلى ذلك، FloristService لديه الأسلوب:
bool AddFlorist(FloristDTO florist);
وكل شيء جيد حتى الآن، ولكن المشكلة هي أن FloristDTO مراجع CountryDTO أي بمعنى.
public string Address1 { get; set; }
public string Address2 { get; set; }
public string Address3 { get; set; }
public string City { get; set; }
public string Postcode { get; set; }
public CountryDTO Country { get; set; }
public string Name { get; set; }
وهذا على ما يرام، ولكن إذا كنت تستخدم لتوليد وكيل خدمة UTIL مع Stuidos البصرية (أي إضافة مرجع> إضافة مرجع الخدمة) ثم أحصل على نسختين من CountryDTO يتم إنشاء i.e.FloristService.CountryDTO وCountryService.CountryDTO.
والآن أستطيع أن أفكر في عدد قليل من الطرق للتغلب على هذا، ولكن nonw منهم يبدو الصحيح. كنت أتساءل ما نهج "الصحيح" لهذا سيكون، هل هناك أي شيء غير تقليدي يمكنني القيام به مع أداة الجيل بالوكالة لجعله مشاركة DTOs مشترك؟
وابتهاج، كريس
المحلول
ويمكنك إعادة استخدام الأنواع في svcutil: <وأ href = "http://blogs.msdn.com/youssefm/archive/2009/10/09/reusing-types-in-referenced-assemblies-with-svcutil-sr-switch.aspx" يختلط = "نوفولو noreferrer "> http://blogs.msdn.com/youssefm/archive/2009/10/09/reusing-types-in-referenced-assemblies-with-svcutil-sr-switch.aspx
نصائح أخرى
"كيف إعادة استخدام أنواع عبر نقاط النهاية خدمة " يقترح على العميل تحديث يدويا Reference.svcmap لتشمل متعددة وNamespaceMappings.
وبدلا من ذلك svcutil لا تسمح لك لتحديد نقاط النهاية متعددة في وقت واحد والاستفادة / ص (/ مرجع) و / ن (/ مساحة الاسم) معلمات.