2010-05-13 3 views
2

에서 Castle Windsor와 FluentValidation을 함께 사용하기 위해 노력하고 있습니다. Castle Windsor 주위에는 이미 래퍼가 있습니다. 여기에 코드입니다 :Castle Windsor와 FluentValidation 사용 MVC

public class ResolveType 
{ 
    private static IWindsorContainer _windsorContainer; 

    public static void Initialize(IWindsorContainer windsorContainer) 
    { 
     _windsorContainer = windsorContainer; 
    } 

    public static T Of<T>() 
    { 
     return _windsorContainer.Resolve<T>(); 
    } 
} 

내가 http://www.jeremyskinner.co.uk/2010/02/22/using-fluentvalidation-with-an-ioc-container

기사는 StructureMap를 사용에서 설명으로 FluentValidation 공장 구축을 위해 노력하고 있어요,하지만 나는이 같은 성 윈저에 적응 수 있다고 생각 :

public class CastleWindsorValidatorFactory : ValidatorFactoryBase 
{ 

    public override IValidator CreateInstance(Type validatorType) 
    { 
     return ResolveType.Of<validatorType>(); 
    } 
} 

Windsor가 형식 참조를 확인할 수 있도록 알림을 래퍼에 연결하려고합니다.

이 문제는 컴파일되지 않습니다. 'validatorType'형식 또는 네임 스페이스 이름을 찾을 수 없습니다 (사용 지시문 또는 어셈블리 참조가 누락 되었습니까?) '

어떻게이 작업을 수행 할 수 있습니까?

답변

4

당신의 ResolveType 클래스에이 방법을 추가 : 다음

public static object Of(Type type) { 
    return _windsorContainer.Resolve(type); 
} 

당신의 CastleWindsorValidatorFactory에 :

public class CastleWindsorValidatorFactory : ValidatorFactoryBase { 
    public override IValidator CreateInstance(Type validatorType) { 
     return ResolveType.Of(validatorType) as IValidator; 
    } 
} 
관련 문제