我在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()的目的是什么?
任何帮助都将不胜感激,谢谢。