编写COM-Visible的Assembly的最佳实践(C#)

本文总结了编写COM可见的C# Assembly的实践经验,包括在AssemblyInfo.cs中设置COM可见性,避免自动注册,显式声明COM类和Interface,以及控制暴露的公共方法。
摘要由CSDN通过智能技术生成

总结了一下最近工作中编写COM-visible的Assembly的最佳实践。

1. 在AssemblyInfo.cs中, 我设置了两个Attribute:

[assembly: ComVisible(false)]
[assembly: Guid("64729ced-7a8d-4c90-af7f-a41725cfe216")] 

第一个Attribute表明我不希望Assembly中所有的public类都被自动标识为COM-visible;第二个Attribute表明我不希望Visual Studio为我的Assembly随机生成一个GUID作为它的Library ID。

2. 在项目属性的Build选项卡中,我把“Register for COM interop”的勾去掉了。这是因为我不希望Visual Studio在编译后自动把这个Assembly注册在开发机或者编译服务器上。

3. 每一个需要作为COM-visible的类,我都按照如下的例子来编写:

[ComVisible(true)]
[Guid("7884998B-0504-4CBE-9FF9-6BBAA9776188")]
[ClassInterface(ClassInterfaceType.None)]
public class MyClass
{
}

我在这里显式地声明一个类是COM-visible的,并且给它指定一个GUID作为COM的类ID,我不希望Visual Studio自动生成一个我在代码中看不到的GUID。我还使用了ClassInterfaceType.None来防止Visual Studio为这个类自动生成一个Interface,这种Interface会暴露出我不想暴露的public方法,也可能会生成不符合我需要

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值