سؤال

وأشعر بأن هذا هو سؤال غبي حتى قبل أن تسأل، ولكن ذهني لا يعمل بشكل جيد للغاية في الوقت الحالي. لقد اثنين من خدمات 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 لا تسمح لك لتحديد نقاط النهاية متعددة في وقت واحد والاستفادة / ص (/ مرجع) و / ن (/ مساحة الاسم) معلمات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top