2

Entities フォルダーには、User.cs のようなさまざまな種類のエンティティがあります。User.cs には、このエンティティの次のようなプロパティがあります。

    public string UserName { get; set; }
    public string ProfileImagePath { get; set; }

User.UserName のように直接呼び出す以外に、これらのプロパティにアクセスする方法はありますか?

プロパティ名を知らなくても、プロパティのリストを循環できれば素晴らしいと思います。エンティティの最初のプロパティの User[0] のようなものを考えています。ありがとう!

4

2 に答える 2

3

リフレクションを使用できます:

foreach(var property in entity.GetType().GetProperties()){
    var value = property.GetValue(entity, null);
    // do whatever you want to do with the value
}

andのBindingFlagsようなものを追加する必要がある可能性があります(デフォルトについてはよくわかりません)。その場合は、使用しますBindingFlag.InstanceBindingFlags.Publicentity.GetType().GetProperties(BindingFlag.Instance || BindingFlags.Public)

于 2012-06-25T00:35:01.330 に答える
1

Reflection を参照してください。yourInstanceこのようなものを使用すると、 classのオブジェクトのすべての文字列プロパティ値を列挙できますA

foreach(var propertyInfo in typeof(A).GetProperties())
{
    if(Type.GetTypeCode(propertyInfo.PropertyType) == TypeCode.String)
        Console.WriteLine((string)propertyInfo.GetValue(yourInstance, null));
}
于 2012-06-25T00:36:27.743 に答える