2013-05-15 1 views
1

저는 ValueInjecter를 처음 사용합니다.ValueInjecter의 ConventionInjection에서 둘 이상의 규칙을 지정하십시오.

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

과 :

var foo = new Foo() { ID = 1}; 
var bar = new Bar(); 
bar.InjectFrom<IgnoreCaseInjection>(foo); 

bar.Idfoo.ID 매핑합니다 나는 이름은 같지만 서로 다른 캡 속성과 일치하는 방법을 알고 있었다. 다른 규칙을 사용하여 매핑 된 다른 속성이 있으면 어떻게됩니까? 예를 들어 foo.MyProp (FooEnum 유형의 열거 형)이 bar.MyProp 인 문자열 (이 열은 .ToString() 열거 형을 저장한다는 의미입니다)도 매핑해야합니다.

변환기에 다른 규칙을 추가하려면 어떻게합니까? 코드는 어떻게 생겼을까요?

답변

0

지금까지, 나는 단지 ValueInjecter's documentation의 해결책을 발견 :

viewModel.InjectFrom(entity) 
       .InjectFrom<CountryToLookup>(entity) 
       .InjectFrom<AnythingElseYouMightImagine>(entity) 
       .InjectFrom(new StuffInjection(stuffRepository), anotherEntity); 

그리고 당신은 확실히 그들이

0

당신이 alwas 사용할 수 있습니다 겹치지 않는 각 클래스를 코딩하고 확인해야 || & &는 일치 방법에 규칙을 추가 할 수 있지만,이 특정한 경우에 나는 또 다른 여기에 같은 주사 만들 것입니다 :이 페이지

https://valueinjecter.codeplex.com/wikipage?title=Useful%20injections&referringTitle=Home

을^당신이 EnumToInt 및 IntToEnum을 볼 수 있습니다, 당신은 그것을 수정하고 할 수있는 EnumToStr