まずは、私はCOMの初心者です。C#のリフレクションがCOM(およびC++)で動作しない
私は大きなプロジェクトでチームに勤めています。サーバー部分はC++で書かれています。クライアント側はC#で書かれています。 COM経由で通信します。
今、私はC#でIAを持っています。オブジェクトはです。タイプはクラスです(C++ではIAを実装していますが、COM経由で何とか転送されます)。そのタイプのすべてのプロパティを取得するためにリフレクションを使用したいが、正しく機能していない。私は自分のコードで使ったプロパティだけを返します。ここで
は、プロパティを取得リフレクションコードです:
Type[] ifaces = typeof(A).GetIterfaces();
foreach (Type iface in ifaces)
{
foreach (PropertyInfo info in iface.GetProperties())
{
// it takes only those properties, I have used in C# code
}
}
まず、私はそれが原因COMの作業ていないと思いました。しかし、それは私がコードで言及するすべてのプロパティを私に与えてくれるのは不思議です。そして、COMの周りのものはすべて、私がこのプロジェクトに入る前に、長い間働いているので、正しく書かれているはずです。
はい。問題は、私はプロパティについて何も知らないということです。また、将来変更することもできます。削除するか、新しいものを追加するか、既存の名前を変更します。とにかくありがとう。 :) – zacharmarz
@zacharmarz更新を確認し、TLB分析ツールに関する情報を追加しました。 – zmilojko