سؤال

ولقد خلق مكتبة فئة C # و أنا أستخدمه من خلال تطبيق VB 6.0. ولكن عندما أحاول الاتصال بأي طريقة (والتي ترجع سلسلة) انه يعطيني خطأ الأتمتة. هو C # الطبقة تشغيل غرامة على خلاف ذلك.

وأي فكرة لماذا؟

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

المحلول

وكما يقول fbinder، يجب أن تقوم بتسجيل قوية التجميع الخاص بك، واستخدام بعض الصفات. سمات نستخدم (بنجاح) هي:

[ComVisible( true )]
[ClassInterface( ClassInterfaceType.None )]
[Guid( "00000000-0000-0000-0000-000000000000" )]
[ComDefaultInterface( typeof( IExposedClass ) )]
public class ExposedClass : IExposedClass
{
    //need a parameterless constructor - could use the default
    public ExposedClass() { }

    public string GetThing()
    {
        return "blah";
    }
}

[ComVisible( true )]
[Guid( "00000000-0000-0000-0000-000000000000" )]
[InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
public interface IExposedClass
{
    string GetThing();
}

نصائح أخرى

يجب عليك التسجيل قوية مكتبة صفك، تسجيله مع regasm ووضع هذه قبل تعريف الفئة الخاص بك:

[ComVisible(true)]
[ClassInterface(ClassInterfaceType.None)]
[Guid("Class GUID")]

وبالإضافة إلى ذلك، يجب عليك تحديد واجهة لفضح أساليب المطلوب. يجب أن يكون واجهة سمات:

 [Guid("Interface GUID")]
 [ComVisible(true)]
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top