저는 다중 레이어 응용 프로그램을 만들고 가능한 한 레이어를 유지하려고하므로이 목적으로 IoC 컨테이너를 사용하고 있습니다. 어쨌든 this article으로 확장하여 비즈니스 로직 유효성 검사를 서비스 계층으로 이동하려고합니다. ModelState 자체에 대한 ModelStateWrapper 클래스의 종속성을 제외한 모든 종속성 문제를 해결할 수있었습니다. 내 수업은 다음과 같습니다.생성자 의존성 삽입 관리 (MS Unity)
public interface IValidationDictionary
{
void AddError(string key, string errorMessage);
bool IsValid { get; }
}
public class ModelStateWrapper : IValidationDictionary
{
private ModelStateDictionary _modelState;
public ModelStateWrapper(ModelStateDictionary modelState)
{
_modelState = modelState;
}
public void AddError(string key, string errorMessage)
{
_modelState.AddModelError(key, errorMessage);
}
public bool IsValid
{
get { return _modelState.IsValid; }
}
}
ModelStateWrapper 클래스는 MVC3 응용 프로그램의 Services 폴더에 있습니다. IValidationDictionary가 내 Services 레이어 내의 Abstract 폴더 안에있는 동안.
.RegisterType<IValidationDictionary, ModelStateWrapper>(
new HttpContextLifetimeManager<IValidationDictionary>())
그래서, 지금은 IOC의를 사용하여 ModelStateWrapper 클래스에 ModelState 개체를 주입 할 수있는 일이 : 내 유니티 구성에서 나는 다음과 같은나요? 또는 컨트롤러에서 ModelStateWrapper를 명시 적으로/수동으로 인스턴스화하고 ModelState를 인수로 전달해야합니까?
미리 감사드립니다.
가능한 중복 도움이되기를 바랍니다
에서이 부트 스트 래퍼를 호출 [ASP에서 의존성 주입 루프 문제를 해결하는 좋은/적절한 방법이 있나요. NET MVC 연락처 관리자 자습서?] (http://stackoverflow.com/questions/1453128/is-there-a-good-proper-way-of-solving-the-dependency-injection-loop-problem-inthth) –
분명히 그렇습니다! 전에 그 실을 보지 못했습니다. 그것을 지적 주셔서 감사합니다. 하지만 여전히 내 문제를 해결하지 못합니다 .../ – Kassem
참조 된 기사의 주어진 접근 방식에 대한 의견은 다음과 같습니다. http://stackoverflow.com/questions/4776396/how-to-inject-a -model-state-wrapper-with-ninject/4851953 # 4851953. – Steven