如果在 interface 上定义 [ClassInterface(ClassInterfaceType.AutoDual)] 生成 DLL
Hi,
在 C# 里面新建了一个工程,这个工程是 C#.Net 生成 DLL ,这个DLL 里面的类全部是准备提供给 VB6 调用的,
之前已经成功生成 DLL 给 VB6 调用,现在这个 DLL 新加了一个 interface 接口.
以下是在 interace 的前面加上 GUID 与 ClassInterface 定义。
namespace Test
{
[GuidAttribute("11111111-1111-1111-1111-111111111111")]
[ClassInterface(ClassInterfaceType.AutoDual)]
public interface TestInterfaceClass
{
void Method1();
}
}
但是,在编绎的时候,提示以下错误:
Error 1 Attribute 'ClassInterface' is not valid on this declaration type. It is only valid on 'assembly, class' declarations.
请问,如何处理,才可以让这个 interface 在生成 DLL 后可以被 VB6 识别调用到??
注: 如果不在 Class 上加上 [ClassInterface(ClassInterfaceType.AutoDual)] 的话,在生成 DLL 后, VB6 的工程里面是看不到相应的 Class 的,但是,现在是 interface 接口而不是 Class, 这种情况不知如何处理。
请指点,谢谢。
------解决方案--------------------class定义成public,加上ComVisible=True就可以看到。
------解决方案--------------------用Guid工具生成一个Guid放进去试试
------解决方案--------------------
我知道啊。