したがって、見出しにあるとおり、私はpropertyInfoというオブジェクトを持っています。私が欲しいのは、その財産ですが、私はそれを行う方法を見つけることができないようです。C#reflection - PropertyInfoからのプロパティのリストの取得
は、まず私はこの方法で持っていた:
public object GetPropertyInfo(object parent, String propertyName)
{
object propInf = null;
PropertyInfo[] propList = parent.GetType().GetProperties();
foreach (PropertyInfo pInf in propList)
{
if (propertyName == pInf.Name)
{
propInf = pInf;
}
}
return propInf;
}
をそして、それは付属「親」オブジェクトは、通常のクラスではなく、反射タイプであると仮定すると、かなりうまく動作します。
しかし、返されるプロパティの一部には、アクセスしたいプロパティが含まれています。これらのインスタンスでは、PropertyInfoをこのメソッドにフィードして、プロパティの別のPropertyInfoを取得する必要があります。しかし、このメソッドにPropertyInfoオブジェクトを置くと、PropertyInfoのプロパティリストが返されます(想像しているように)。
私はそれを読んで、私が欲しいかもしれないものは、PropertyInfoクラスの 'GetValue'メソッドです。私はそれが何であるかを解析することができないので、それは少し不明です。
はそうであっても、私はそのように書いている:
public object GetPropertyInfo(object parent, String propertyName)
{
object propInf = null;
object o = null;
if (parent is PropertyInfo)
{
PropertyInfo p = (parent as PropertyInfo);
o = p.GetValue(p, null);
}
else
o = parent;
PropertyInfo[] propList = o.GetType().GetProperties();
foreach (PropertyInfo pInf in propList)
{
if (propertyName == pInf.Name)
{
propInf = pInf;
}
}
return propInf;
}
はもちろん、私は、第1の仕事を望みました。 PropertyInfo型であることを認識し、次の部分は次の例外を提供します。
TargetException:オブジェクトがターゲットタイプと一致しません。
私は「GetValue」で間違いを犯しているかもしれませんが、私は完全にそれに精通していないので、タイプを指定せずにそれを行うことができれば、それは素晴らしいことでしょう。
ここで私は古いスポーツを助けてくれました。どうもありがとう! – TheFaithfulLearner