このコードを使用して、あるオブジェクトのプロパティをその名前で取得します。
string propName = "Buttons"; // getting this runtime
Type t = container.GetType();
PropertyInfo p = t.GetProperty(propName);
object prop = p.GetValue(container, null);
プロパティのタイプはプロパティ名によって異なりますが、すべてのプロパティがIList
インターフェイスを実装しているため、すべてのプロパティにAdd()
メソッドがあります。ここで、このメソッドを使用してそのプロパティに要素を追加できるようにしたいと思います。しかし、タイプでこのメソッドを呼び出すことはできませんobject
。どういうわけかそれをランタイムにキャストする必要がありますが、その前にどういうわけかを使用する必要がありますprop.Add()
。これはもちろん、コンパイルエラーをトリガーします。オブジェクトタイプに関係なく実行時にメソッドを呼び出す方法はありますか(もちろん、オブジェクトにそのメソッドがあることを確認してください)。
PS質問が明確でない場合は、詳細を追加できます。