与此this问题相关:
我有一个C#模板/项目,我必须在其中放入一些自定义代码。文档中说:“如果更改了四个公共函数以外的任何代码,则COM+类ID可能会更改,并且对象安全脚本将无法工作,从而导致BSTCustomValidation.dll验证组件无法运行。”
当我添加了一堆私有方法时,COM+类ID似乎发生了变化,并且没有通过验证。但是,当我创建一个接口并让类继承它时,它很好地通过了验证,大概是因为Com class ID与原始模板相同。
为什么添加私有方法会更改Com+类ID,然后添加接口又会将其更改回来。
发布于 2013-10-05 11:36:33
C# (或其他CLR语言)通过以下两种方式之一为COM可见对象生成CLSID:
因此,添加私有方法会更改类的类型数据,从而更改GUID;但作为接口显然不会影响GUID生成算法。
如果你想在没有接口的情况下添加私有方法,那么获取当前的GUID (例如,通过反射),并使用GUID属性显式指定该Guid。
https://stackoverflow.com/questions/19190327
复制相似问题