ValueInjecter在映射属性时忽略大小写

Lou*_*hys 4 c# valueinjecter

例如,我想将属性Foo.ID映射到Bar.Id,是否可能?

nem*_*esv 6

您需要创建自己的ConventionInjection位置,在不敏感地比较属性名称的情况下:

public class IgnoreCaseInjection : ConventionInjection
{
     protected override bool Match(ConventionInfo c)
     {
         return String.Compare(c.SourceProp.Name, c.TargetProp.Name, 
                               StringComparison.OrdinalIgnoreCase) == 0;
     }
}
Run Code Online (Sandbox Code Playgroud)

你需要使用它

var foo = new Foo() { ID = 1};
var bar = new Bar();
bar.InjectFrom<IgnoreCaseInjection>(foo);
Run Code Online (Sandbox Code Playgroud)