我正在构建一个多层应用程序并试图尽可能地保持图层,所以我正在使用一个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位于我的服务层内的抽象文件夹中。在我的统一配置,我做了以下内容:
.RegisterType<IValidationDictionary, ModelStateWrapper>(
new HttpContextLifetimeManager<IValidationDictionary>())
所以,现在有什么我可以做些什么来注入的ModelState对象为使用国际奥委会ModelStateWrapper类?或者我必须显式/手动实例化控制器中的ModelStateWrapper并将ModelState作为参数传入?
在此先感谢!
的可能重复调用该引导程序[有没有解决的ASP的依赖注入循环问题的一个好/有道。 NET MVC ContactsManager教程?](http://stackoverflow.com/questions/1453128/is-there-a-good-proper-way-of-solving-the-dependency-injection-loop-problem-in-th) – 2011-02-27 16:58:21
显然是的!我之前没有看到那个线程。感谢您指出。但仍然不能解决我的问题...:/ – Kassem 2011-02-27 20:02:26
下面是对所引用文章中的给定方法的评论SO的答案:http://stackoverflow.com/questions/4776396/how-to-inject-a -model状态,包装与 - ninject/4851953#4851953。 – Steven 2011-03-01 07:37:20