Как создать SafeArray C #? - PullRequest
4 голосов
/ 04 мая 2011

Мне нужно создать SafeArray для перехода к методу COM.
Как мне создать / сохранить / уничтожить SafeArray в C #?

Я никогда раньше не сталкивался с SafeArrays и не мог найти много с помощью быстрого поиска в Google, поэтому любая помощь очень ценится.

РЕДАКТИРОВАТЬ: добавлен пример кода:

Подпись метода COM

[id(0x000000d5)]
HRESULT GetTags(
                [in] SAFEARRAY(long) buffer, 
                [out, retval] long* retval);

Сгенерированный метод взаимодействия в C #

int GetTags(System.Array buffer)
    Member of Cwise.IUser

Так что в этом случае мне нужно создать SafeArray или я могу просто передать нормальный массив .Net в COM-метод GetTags?

1 Ответ

8 голосов
/ 04 мая 2011

используйте такой код для этого

Array ar = Array.CreateInstance(typeof (int), 500);

вместо typeof(int) используйте ваш собственный тип данных, ваш COM-объект должен сказать вам, какой тип ожидает.

...