1

ent lib 5.0 の MapBuilder.cs ソース コードを読みました。

一部のコードは私にとって非常に奇妙に思えますが、そうする目的が何であるかを理解することはできません:

public static IMapBuilderContext<TResult> MapAllProperties()
{
   IMapBuilderContext<TResult> context = new MapBuilderContext();
   var properties =
            from property in typeof(TResult).GetProperties(BindingFlags.Instance | BindingFlags.Public)
            where IsAutoMappableProperty(property)
            select property;
   foreach (var property in properties)
   {
       context = context.MapByName(property);
   }
   return context;
}

MapAllProperties() では Type.GetProperties() を使用してプロパティを取得し、MapByName() では NormalizePropertyInfo() というメソッドを使用して「別の」プロパティを取得します。Type.GetProperty() を再度呼び出すことを意味します!!!:

private static PropertyInfo NormalizePropertyInfo(PropertyInfo property)
{
    if (property == null) throw new ArgumentNullException("property");
    return typeof(TResult).GetProperty(property.Name);
}

GetProperty() を再度呼び出す必要があるのはなぜですか? NormalizePropertyInfo() の目的は何ですか?

助けていただければ幸いです、ありがとう。

4

0 に答える 0