私の会社にいなくなった数人の開発者が作成した既存のAPIを使用しています。私が理解しているように、APIは、ソケットを介してローカルホスト上のサーバプログラムと通信するdllとして実装されています。したがって、オブジェクトを前後に整列します。このAPIにはいくつかのメソッドを追加する必要があります。使用可能な名前のリスト(すべての文字列)を返す既存のメソッドがいくつかあります。しかし、それらはすべてオブジェクトの配列として返されます。コードは次のようになります:API配列の戻り値の型
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_VARIANT)]
object[] GetAvailableNames();
私はこれがなぜ行われたのか分かりません。なぜ文字列の配列を返さないのですか?誰にも分かりますか?
メモリはどのように扱われますか? – leppie
@leppie CLRがCOMルールを介してメモリを処理できるように、アノテーションによって判断するのは安全な配列です。 – JaredPar
@JaredPar:ああ、私はCOMを知っていません(まったく)。したがって、COMプロセス/サーバーがメモリを処理するという前提がありますか? – leppie