سؤال

هل حصل أي شخص على أي نوع من الخبرة في البرمجة الديناميكية باستخدام WCF.أعني بالبرمجة الديناميكية استهلاك وقت التشغيل لـ WSDL.لقد وجدت إدخال/أداة مدونة واحدة:http://blogs.msdn.com/vipulmodi/archive/2006/11/16/dynamic-programming-with-wcf.aspx

هل وجد أي شخص هنا أدوات جيدة لهذا؟

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

المحلول

هذا هو أحد الجوانب الأكثر غرابة في WCF.يمكنك إنشاء مصنع قنوات ديناميكيًا، ولكن باستخدام نوع معروف فقط.

لقد توصلت إلى حل ليس مثاليًا ولكنه فعال:

قم بإنشاء واجهة "IFoo" التي تحتوي على طريقة واحدة، على سبيل المثال Execute().في ESB الخاص بك، قم بإنشاء ملف ديناميكيًا ChannelFactory<IFoo> لنقطة النهاية التي تريد الاتصال بها.قم بتعيين خصائص الاتصال (URI، وما إلى ذلك).

الآن، يمكنك ربط الخدمات ديناميكيًا بـ ESB الخاص بك، بشرط أن تقوم دائمًا بتنفيذ واجهة "IFoo".

نصائح أخرى

لقد فعلت ذلك منذ وقت طويل مع خدمات الويب SOAP.كانت هناك أداة على GotDotNet والتي أعتقد أنها أصبحت خدمات الويب ستوديو اكسبرس, ، يحتوي على رمز يقوم بفحص/تحليل ملف WSDL ويسمح لك بالاتصال به.

أعتقد أن الافتراض هو أن WSDL معروف في وقت إنشاء العميل، ولا تحتاج إلى توصيله في وقت التشغيل.إذا قمت بفحص WSDL في وقت التشغيل، فلا تزال بحاجة إلى نوع من المنطق لتقرر كيفية إنشاء الوكيل.لماذا لا يمكنك استهلاك WSDL قبل وقت التشغيل؟من المفترض أن تكون خدمات الويب ثابتة إلى حد ما مع واجهة لا تتغير بمجرد نشرها.

يمكنك استخدام .NET CodeDom لإنشاء تعليمات برمجية لتنفيذ واستخدام خدمة الويب الموضحة بواسطة WSDL.يمكن تحليل WSDL باستخدام فئات .NET XML القياسية.

أنا أفكر بالفعل في إنشاء ESB صغير، حيث يمكن للمستخدم إضافة خدمة ويب للتوجيه إليها في وقت التشغيل.لذلك لا أستطيع إضافة WSDLs بشكل ثابت

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