对所有人来说,我使用Structure Map来实现依赖注入。我创建了ModelStateWrapper类来在服务层中发送Model状态,在构造函数中获取对控制器ModelState的引用。在bootswrapper中,我注册了我的类型:
ForRequestedType<ISourceService>()
.TheDefaultIsConcreteType<SourceService>();
ForRequestedType<IValidationDictionary>()
.TheDefaultIsConcreteType<ModelStateWrapper>();
我如何在这里向ModelStateWrapper提供控制器模型状态的参考?
P.S。抱歉我的英文:)
答案 0 :(得分:2)
您需要提供更多信息,但这是我最好的猜测:
public class ModelStateWrapper : IValidationDictionary
{
...
private readonly ModelState _modelState;
public ModelStateWrapper(ModelState modelState)
{
_modelState = modelState;
}
...
}
如果你想将一个变量(在这种情况下是控制器的模型状态)传递给ModelStateWrapper,你几乎肯定需要通过调用ObjectFactory来显式地做到这一点。
示例:
MyController : Controller
{
...
public MyAction()
{
...
IValidationDictionary validationDictionary = ObjectFactory
.With<ModelState>(this.ModelState)
.GetInstance<IValidationDictionary>();
...
}
...
}
有关详细信息,请参阅此文档: