- 设置可见性
- 设置接口行为
设置可见性
[ComVisible(true)]
设置接口行为
[ClassInterface(ClassInterfaceType.AutoDual)]
效果
[ComVisible(true)]
[ClassInterface(ClassInterfaceType.AutoDual)]
public class Project
{
public string Name { get; set; }
// 其他属性和方法
}
关于接口行为设置(ClassInterfaceType)
ClassInterfaceType枚举有三个值:
AutoDispatch:仅提供IDispatch接口,没有具体的接口定义。这是延迟绑定的情况,意味着你只能通过名称来动态地调用成员(无法在编译时进行类型检查)。这是默认值。
AutoDual:提供IDispatch接口以及一个具体的、对每个公共成员自动生成的接口。这允许既支持延迟绑定又支持早期绑定。然而,使用AutoDual通常被视为不好的做法,因为它可以引起版本控制问题。当你更改类的定义并更新COM客户端时,可能会出现不兼容的情况。
None:不为该类自动生成接口。如果选择这个选项,您应该明确为类提供自己的接口,否则类将不会对COM客户端公开任何成员。