C# アプリケーションで古い VB ライブラリを使用しようとしています。
このライブラリにはいくつかのクラスがあり、特に 1 つのメソッドはそれ自体のインスタンスを返します。例:Posts post = new Posts().GetLast();
Posts クラスには、実際にはオブジェクト型のプロパティ Comments があります。VB では、Comments プロパティを介して a のように繰り返し処理できますMicrosoft.VisualBasic.Collection
が、C# では、プロパティをキャストして使用することはできません。Microsoft.VisualBasic 名前空間をインポートして Collection に型キャストしようとしましたが、System.__ComObject をライブラリから特定のインターフェイスにキャストする必要があるというエラーが返されて機能しませんでした。
コレクション内には IComments インターフェイスを実装するオブジェクトがあり、インターフェイスのコレクションであるため、インターフェイスにキャストできません。
ICollection (によって実装されるインターフェイス Microsoft.VisualBasic.Collection
) へのキャストも試みましたが、肯定的な結果は得られませんでした。
この問題を解決する方法についてのアイデアはありますが、この問題から抜け出す唯一の方法は、C# アプリケーションを VB アプリケーションに変更することです (それほど難しくはありませんが、避けたいことです)。