可以将SuppressUnmanagedCodeSecurityAttribute应用于COM Interop接口吗?

时间:2013-10-08 16:39:29

标签: c# .net com com-interop

可以将SuppressUnmanagedCodeSecurityAttribute应用于COM Interop接口以提高性能,还是仅适用于优化本机函数调用? MSDN says

  

此属性仅在应用于PInvoke方法(或包含PInvoke方法的类)或将通过其进行互操作调用的接口定义时才有效。在所有其他情况下都会被忽略。

但是,我并不确定是否包含COM互操作。

2 个答案:

答案 0 :(得分:2)

根据this MS page,您可以让Tlbimp.exe通过传递" / unsafe"将SuppressUnmanagedCodeSecurity属性应用于您的COM接口。开关。我可以确认它的工作方式与简单的测试TLB相同。

答案 1 :(得分:1)

  

或将通过其进行互操作调用的接口的定义

谈到COM接口。该属性必须应用于接口声明才能生效。请注意,获取有多难,COM接口通常在由Tlbimp.exe生成的互操作库中声明。缺少自动生成属性的选项。实际上,如果您自己声明接口,则只能执行此操作。