خطأ الأتمتة في VB 6.0 من الفئة C #
-
06-07-2019 - |
سؤال
ولقد خلق مكتبة فئة 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)]
لا تنتمي إلى StackOverflow