如何在不更改COM +类ID的情况下向类添加方法

时间:2013-10-04 15:58:19

标签: c# com coding-style

我在dll中编写了一些必须符合某些规范的代码。其中之一就是它只能使用它当前拥有的方法,枚举,类等。

我将“提交”dll的应用程序强制执行所有方法的规范。如果它不符合规格,则拒绝它。

更新:这是在C#中特别发生的。有关规范的文档说明:“如果更改了除四个公共函数之外的任何代码,则COM +类ID可能会更改,并且对象安全脚本将无法运行,从而导致BSTCustomValidation.dll验证组件无法运行。”

2 个答案:

答案 0 :(得分:8)

鉴于要求只有一个导出功能,那么很容易通过不导出其他19来实现。

答案 1 :(得分:3)

听起来应该define an explicit interface

  

因为COM interop会自动生成类接口,所以对类的更改后版本可能会改变公共语言运行库公开的类接口的布局。由于COM客户端通常没有准备好处理接口布局的更改,因此如果更改类的成员布局,它们会中断。

将其与根据需要声明所有内容privateinternal相结合就足够了。