2009-04-16 4 views
3

안녕, 모든, 나는 의존성 주입을 구현하는 구조지도를 사용하고 있습니다. ModelStateWrapper 클래스를 생성하여 생성자에서 Controller의 ModelState에 대한 참조를 얻는 서비스 계층에서 Model 상태를 전송합니다.컨트롤러 ModelState with ModelStateWrappper

ForRequestedType<ISourceService>() 
      .TheDefaultIsConcreteType<SourceService>(); 
ForRequestedType<IValidationDictionary>() 
     .TheDefaultIsConcreteType<ModelStateWrapper>(); 

것은 내가 여기 ModelStateWrapper하는 컨트롤러의 모델 상태의 참조를 줄 수있는 방법 : bootswrapper에서 나는 내 타입을 등록?

p.s. 죄송합니다 내 영어 :

답변

2

당신은 더 많은 정보를 제공 할 필요가 있지만, 이것은 당신이 무엇을 나의 추측이다 :이의 변수 (컨트롤러의 모델 상태를 전달하려는 경우

public class ModelStateWrapper : IValidationDictionary 
{ 
    ... 
    private readonly ModelState _modelState; 
    public ModelStateWrapper(ModelState modelState) 
    { 
      _modelState = modelState; 
    } 
    ... 
} 

case)를 ModelStateWrapper에 추가하려면 ObjectFactory를 호출하여 명시 적으로이를 수행해야합니다.

예 :

MyController : Controller 
{ 
    ... 
    public MyAction() 
    { 
     ... 
     IValidationDictionary validationDictionary = ObjectFactory 
      .With<ModelState>(this.ModelState) 
      .GetInstance<IValidationDictionary>(); 
     ... 
    } 
    ... 
} 

는 자세한 내용은이 문서를 참조하십시오 : 답장을

Passing Arguments to StructureMap at Runtime

+0

감사합니다, 그래 난이 상황을 가지고 내가 Bootswrapper 파일에 IValidationDictionary에 컨트롤러의 ModelState을 설정하려면, 컨트롤러에 없습니다. 내가 할 수 있을까? 아니면 내 기본 컨트롤러 클래스에서 설정해야합니까? –