6
[ClassInterface(ClassInterfaceType.None)]
Class Program()
{
}

我们什么时候需要将ClassInterface属性应用到一个类,就像这里所做的那样?

4

1 回答 1

4

ClassInterfaceAttribute用于声明您的类对 COM 调用者的可见性,也就是说,如果您的类与 COM 世界中试图使用您的类的东西配合得很好。枚举中包含三个选项,ClassInterfaceType您可以将它们指定为ClassInterfaceAttribute. 这里它来自 MSDN,下面是三个类声明的示例,每个类声明都有不同的 InterfaceType 选择:

ClassInterfaceAttribute在 MSDN 上

ClassInterfaceType在 MSDN 上

下面说明了 的使用ClassInterfaceAttribute

// This one will not be visible to COM clients.
[ClassInterface(ClassInterfaceType.None)]
public class MyClass1
{

}

// This one will provide an interface for COM clients, 
// but only when/if one is requested of it.
[ClassInterface(ClassInterfaceType.AutoDispatch)]
public class MyClass2
{

}

// This one will, immediately upon instantiation, 
// automatically include an interface for COM clients.
[ClassInterface(ClassInterfaceType.AutoDual)]
public class MyClass3
{

}
于 2012-09-17T04:14:47.200 回答