سؤال

كان أحد الأشياء اللطيفة حول COM/ActiveX هو EXE خارج العملية. يمكن أن يكون لديك exe التي تعرض الأساليب والخصائص في شكل قابل للاستخدام من قبل كل من العمليين الآخرين ، بما في ذلك VBScript و JScript. في الوقت نفسه ، يمكن أن يكون لدى EXE وظائفها الخاصة ، ذات الصلة أو غير المرتبطة بتلك التي تعرضها مكتبة نوعها.

ما هو .NET المكافئ؟

لدي مشروع VB6 الحالي وهو مترجم لغة برمجة (باستخدام MSScript) ومورد وظائف الأدوات المختلفة للغات البرمجية الأخرى. لقد اقترح أن أحاول تحويله إلى .NET.

هل سيعمل هذا ، أم أن ينتهي بتقسيم العنصر الواحد إلى قسمين؟

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

المحلول

ستسمح لك خدمات المؤسسات بالقيام بذلك. يمكنك تشغيل مكون com على النحو التالي:

  • عملية dllhost
  • خدمة
  • مكتبة InProc (هذه في نفس عملية الكود الآخر)

هناك العديد من الأمثلة على الإنترنت حول هذه. ما يتعلق به هو:

  • تزيين الفصول الدراسية التي تحتاجها لفضح com مع واجهات
  • يجب أن تكون المكونات التي تريد استضافتها من الخدمات
  • تزيين واجهاتك باستخدام GuidAttribute (استخدم GUID فريد)
  • تزيين الواجهات والفئات المعرضة لـ COM مع سمة (حقيقية)

أتمنى أن يساعدك هذا.

نصائح أخرى

مراسلات .NET هي .NET Remoting لـ .NET 2.0 ، و WCF لمدة 3.0+. إذا كنت بحاجة إلى التواصل مع كائنات COM ، فيجب عليك إنشاء كائن معرض بدلاً من ذلك. هناك عدد غير قليل من البرامج التعليمية لذلك.

هناك بعض الخيارات لهذا ؛ كائن أكثر وضوحا المكونات المخدومة; ؛ يتيح لك ذلك استضافة الكود المُدار في COM+ لتشغيله في عملية منفصلة ، لكنك تحتاج إلى GAC/COM-COLLE-ETC.

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