0
私は検索しましたが、正解が見つかりませんでした。C#クラスフィールドの反映
public sealed Class Foo{
public static readonly Foo x;
public static readonly Foo y;
public static readonly Foo z;
public static readonly Foo t;
public string Name{get;}
public int Value{get;}
public Foo(string name,int val){//properties sets here}
}
そして、私のようなenum
持っている:
は、私たちのようなクラスを持っていると仮定別のライブラリに
public enum FooFinder{
x,
y,
z,
t
}
このFooのクラスをFooLib.dll
、私が作成したFooFinder
と呼ばれます。
私のenumクラスを使用してFoo.x、Foo.yの型を返したいとします。
private static Foo GetFoo (FooFinder Level)
{
FieldInfo[] props = typeof(Foo).GetFields();
foreach (FieldInfo item in props)
{
if (item.Name == Enum.GetName(typeof(FooFinder), Level))
{
// I could create an instance of Foo with Activator.CreateInstance()
// but I want to return Foo class' chosen field by FooFinder enum
}
}
}
私は自分がしたいことを説明できることを希望します。では、Fooクラスの選択フィールドをリフレクションでどのように取得できますか?または私は得ることができますか?
は[知っておくと便利]することができた(https://msdn.microsoft.com/en-us/library/ms229043(V = vs.110).aspxの) 。質問については、メソッドにインスタンスを渡さないので、インスタンスをどこかから取得する必要があります。あなたはどこから知っているだけですか。 – Sinatr
これらのすべての静的フィールド(x、y、z、t)のタイプは何ですか? –
あなたは、そのフィールドの_静的な値_を取得したい、または正しいフィールドを見つけるのに問題がありますか?もしそうなら、それは[この質問]の複製です(http://stackoverflow.com/questions/5898385) –