プロパティ名を文字列として取得するには?
例えば:
Public int PropertyValue{get;set;}
ここで、PropertyValue をリフレクションなしで foreach PropertyInfo なしの文字列として取得したい
プロパティ名を文字列として取得するには?
例えば:
Public int PropertyValue{get;set;}
ここで、PropertyValue をリフレクションなしで foreach PropertyInfo なしの文字列として取得したい
私はここで解決策を見つけました: Type-safe databindingのためのC#の「nameof」演算子の欠如の回避策?
@reshefm がこのコードを持っていた場所:
class Program
{
static void Main()
{
var propName = Nameof<SampleClass>.Property(e => e.Name);
Console.WriteLine(propName);
}
}
public class Nameof<T>
{
public static string Property<TProp>(Expression<Func<T, TProp>> expression)
{
var body = expression.Body as MemberExpression;
if(body == null)
throw new ArgumentException("'expression' should be a member expression");
return body.Member.Name;
}
}
お役に立てれば :)