- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我总是用 [assembly: ComVisible(true)]
将我的 .NET 程序集标记为对 COM 可见。 ,认为我永远不知道何时有人可能需要从 COM 调用他们。我也开始使用 FxCop 并开始从代码分析中看到这个警告:
CA1017 : Microsoft.Design : Because 'MyLibrary.dll' exposes externally visible types, mark it with ComVisible(false) at the assembly level and then mark all types within the assembly that should be exposed to COM clients with ComVisible(true)
最佳答案
关键是导出 COM 接口(interface)并不是免费的,因为存在不兼容性和必须满足的要求。这必须考虑并维护。 (警告 CA1017 暗示了这一点。)
因此,我一直使用“选择加入”理念而不是“选择退出”,即我没有让所有 COM 可见,而是将程序集标记为 COM 不可见。然后,我专注于有选择地公开类型\成员(即通过选择加入),并确保公开的 API 对于 COM 是合理的(例如,COM 不支持泛型、方法重载或带参数的构造函数)并且它具有已在考虑 COM 的情况下进行了测试。通过这种方式,将 API 暴露给 COM 以一种严格的、经过测试的、有界的和可维护的方式完成。
这与让所有 COM 可见然后担心以后可能出现的任何问题相反,请记住,如果您暴露了所有内容,那么可能会与您的 COM 接口(interface)的用户发生耦合,这是您没有预料到的,现在很难退出的。
根据内存,有几个意外后果的例子:
关于.net - 为什么不鼓励将程序集标记为 ComVisible(true)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3309764/
我认为允许在 Haskell 中进行任意链式比较会很好,因此您可以进行简单的范围检查,例如: x ), (>=), (==), (/=)) class Booly v a where truthy
(请注意,当我说“JVM”时,我的意思是“热点”,我正在运行最新的 Java 1.6 更新。) 示例情况: 我的 JVM 运行时 -Xmx 设置为 1gb。目前,堆分配了 500mb,其中 450mb
我试图利用 上的崩溃安全漏洞Ubuntu 16.04 ,带有未修补的 内核 4.8.0-36 在 英特尔酷睿-i5 4300M 中央处理器。 首先,我使用内核模块将 secret 数据存储在内核空间中
假设我想在 do 中 fork 一个线程-notation block ,但我不关心线程ID。如果我写 forkIO action GHC 发出警告 Warning: A do-notation st
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
我正在用 Java 探索一棵树,但我的内存有限。我通过查看占用统计数据来处理这个问题,当我超过 80%(比如说)时,停止分配树的新位以避免内存不足。只需使用我到目前为止所得到的 20% 净空进行计算即
我是一名优秀的程序员,十分优秀!