Reflection(C#)を使用してRuntimemethodinfoオブジェクトのRepretParameterの名前のプロパティを取得します
-
27-10-2019 - |
質問
C#に次のクラスがあるとします。
public class B : A
{
public Int32 B_ID;
public String B_Value;
public Int32 getID()
{
return B_ID;
}
public void setID(Int32 value)
{
B_ID = value;
}
}
リフレクションに基づいて、getID()(および/または)setID()メソッドで使用されているフィールドの名前を取得できますか? (場合、[b_id])私は永続的なフレームワークをコーディングしていますが、上記の両方の方法で囲まれたテーブルのキー名を識別することは有用です。
RuntimemethodinfoのReturnParameterプロパティには、これに役立つ名前と呼ばれるプロパティがあるようですが、それはnullをコミットしています。
そのruntimemethodinfoオブジェクトを取得するために、このバインディングフラグ列挙を使用してBクラスのインスタンスのメンバーを取得します。
- BindingFlags.public | BindingFlags.Instance | BindingFlags.declaredonly
このフィールド名を取得するにはどうすればよいですか?この動作は、プロパティでも同じでなければなりません。
前もって感謝します
解決
フィールド名は実装されたコードの一部であり、反射がそれを取得する方法の手がかりがないため、それは不可能だと思います。永続的なフレームワークは通常、そのような情報を提供するために一種のマッピングを使用します。たとえば、XMLファイルを使用するか、フィールド上でアトリューブスを使用してテーブルのキーまたは列として紹介することができます。
[Table(name="MyTable")]
public class B : A
{
[Key(column_name="id")]
public Int32 B_ID;
public String B_Value;
public Int32 getID()
{
return B_ID;
}
public void setID(Int32 value)
{
B_ID = value;
}
}
所属していません StackOverflow