可以SuppressUnmanagedCodeSecurityAttribute
应用于 COM Interop 接口以提高性能,还是仅适用于优化原生函数调用?MSDN 说:
此属性仅在应用于 PInvoke 方法(或包含 PInvoke 方法的类)或将通过其进行互操作调用的接口定义时有效。它将在所有其他上下文中被忽略。
但是,我不确定是否包括 COM 互操作。
可以SuppressUnmanagedCodeSecurityAttribute
应用于 COM Interop 接口以提高性能,还是仅适用于优化原生函数调用?MSDN 说:
此属性仅在应用于 PInvoke 方法(或包含 PInvoke 方法的类)或将通过其进行互操作调用的接口定义时有效。它将在所有其他上下文中被忽略。
但是,我不确定是否包括 COM 互操作。
根据这个 MS 页面,您可以让 Tlbimp.exe 通过传递“/unsafe”开关将 SuppressUnmanagedCodeSecurity 属性应用于您的 COM 接口。我可以通过一个简单的测试 TLB 确认它的工作原理与宣传的一样。
或接口的定义,通过该接口将进行互操作调用
那是关于COM接口的。该属性必须应用于接口声明才能生效。请注意这有多难,COM 接口通常在由 Tlbimp.exe 生成的互操作库中声明。缺少自动生成属性的选项。实际上,只有在您自己声明接口时才能这样做。