سؤال

لدي مشروع C# يحتوي على العديد من إشارات الويب إلى منتج طرف ثالث. تستخدم كل مكالمات خدمة الويب هذه فئة "سياق المستخدم". لذلك تقبل كل خدمة ويب نفس مقتطف XML بالضبط.

يجب علي حاليًا الاحتفاظ بالعديد من كائنات "سياق المستخدم" هذه حيث أضغط على جميع مكالمات خدمة الويب المختلفة. فئة "سياق المستخدم" التي تم إنشاؤها هي نفسها تمامًا ولكنها وضعت فقط في مساحات أسماء .NET مختلفة (مساحة اسم XML هي نفسها).

أود أن أكون قادرًا على الحصول على واحدة فقط من هذه الحالات. كيف يمكنني فعل ذلك؟

أنا أستخدم Visual Studio 2010 واستخدام الفئة التي تم إنشاؤها عن طريق إضافة خدمة الويب. أنا لا أعارض استخدام بعض الإطار أو الآلية الأخرى. لقد فكرت حتى في لف الكود الخاص بي ، ولكن هناك العديد من خدمات الويب (لكل منها العديد من طرق الويب) التي سأحتاج إلى استخدامها.

تحديث: لقد أضفت هذه في الأصل عن طريق إضافة مرجع ويب ، سأضيفها الآن كمرجع خدمة. تتعرض خدمات الويب نفسها من خلال intersystems Caché ولم أبحث عن مدى توافقها مع WS-I.

هل كانت مفيدة؟

المحلول

لست متأكدًا من VS 2010 ، ولكن في عام 2008 ، كان هناك خيار "إعادة استخدام أنواع التجميعات المشار إليها" في مرجع الخدمة إضافة معالج يفعل ما تحتاجه فقط. من أجل الحصول على نفس النوع في جميع مراجع الويب ، قم بإنشاء مجموعة ، ووضع تعريف النوع هذا هناك ، والرجوع إليه من مشروعك ، ثم إضافة مراجع الويب التي تحتاجها.

نصائح أخرى

لقد حلت مشكلة مثل هذه باستخدام فئة واحدة فقط وتحويل الكائن باستخدام التسلسل/إزالة التسلسل XML. ولكن لا يزال هذا ليس الحل الأمثل.

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