4

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

所有一种方法的规范都是由我“提交” dll 的应用程序强制执行的。如果它不符合规范,它会拒绝它。

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

4

2 回答 2

8

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

于 2013-10-04T16:17:25.540 回答
3

听起来您应该定义一个显式接口

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

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

于 2013-10-04T18:33:44.730 回答