如何在.NET中控制COM可见类的接口的行为

  1. 设置可见性
  2. 设置接口行为

设置可见性

[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客户端公开任何成员。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值