如何创建SafeArray C#?

sha*_*e87 4 c# com interop com-interop safearray

我需要创建一个SafeArray来传递给COM方法.
如何在C#中创建/维护/销毁SafeArray?

我以前从来没有遇到过SafeArrays,也没有找到快速的谷歌搜索,所以任何帮助都非常感谢.

编辑:添加示例代码:

COM方法签名

[id(0x000000d5)]
HRESULT GetTags(
                [in] SAFEARRAY(long) buffer, 
                [out, retval] long* retval);
Run Code Online (Sandbox Code Playgroud)

C#中生成的互操作方法

int GetTags(System.Array buffer)
    Member of Cwise.IUser
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下,我是否必须创建一个SafeArray,或者我可以简单地将一个普通的.Net数组传递给COM方法GetTags?

Eug*_*gen 8

为此使用这样的代码

Array ar = Array.CreateInstance(typeof (int), 500);
Run Code Online (Sandbox Code Playgroud)

typeof(int)您的COM对象必须说出您期望的类型,而不是使用您自己的数据类型.