Java バイトコードを CLR バイトコードにコンパイルするIKVMを使用して、.NET に記述した Java ライブラリを公開しています。これはうまく機能します。私の質問は API の設計に関するものです。私の API は非常にシンプルで小さいです。メソッド呼び出しは、java.util.Set を実装するオブジェクトを返します。私の質問は、.NET 開発者の観点から、次のうちどれが開発者にとってより使いやすいかということです。
- この Java オブジェクトを開発者に直接返すには (この場合、開発者は IKVM Core および Util ライブラリをコードにインポートする必要があります)、または
- 返された Java オブジェクトを .NET に適したインターフェイスでラップするには? .NET への唯一の Set インターフェイス標準はISetであり、これは .NET 4 にのみ存在します。
一般に、.NET 開発者が期待するインターフェイスで返されたオブジェクトをラップする方がよいと思います。これは、ISet を返すようにパブリック API を設計する方がよいことを示しています。ただし、API が ISet に依存している場合、アプリケーションを以前のバージョンの .NET で実行できるようにすることもできます。ISet を使用しない場合は、java.util.Set を含む任意の Set インターフェイスを使用できるようです。
誰でも提供できるガイダンスをいただければ幸いです。