文字列表現オブジェクトインスタンスプロパティのはExpression<Func<T>>
で撮影することができます。オブジェクトインスタンスを作成せずにオブジェクトプロパティ名文字列を取得することはできますか?
string propertyName = ((MemberExpression) property.Body).Member.Name;
しかし、私は持っていない場合は、インスタンスを(作成しない)何?この場合、プロパティ名を取得するにはどうすればよいですか?
は、私はいくつかのオブジェクトのプロパティ名の文字列表現を必要とする
を説明しました。
のエンティティ
public class Customer
{
public int ID;
public string Name;
}
今、私はこのように私は、文字列「ID」が必要、他のいくつかの関数にこのエンティティのキー式を渡したいが、私はハードコーディングしたくないがあるとしましょうSomeOtherFunction("ID")
のような文字列ではなく、代わりに式SomeOtherFunction(ExpressionReader.GetString(() => CustomerInstance.ID))
を使用します。これが機能するには、エンティティインスタンスを提供する必要があります。
今、私は同じをインスタンスの作成なしで実行したいと思います。
インスタンス」とはどういう意味ですか"?プロパティを公開するクラスのインスタンスを作成する必要はありませんが、明らかに 'Expression'のインスタンスが必要です。 –
CodesInChaos
あなたはtypeof(myClass).GetProperty( "abc")を認識していますか? – Efrain
IDプロパティのハードコードと "ID"文字列の違いは何ですか? – SWeko