第一次使用stackoverflow + ninject(IoC)
我遇到过这样一种情况:我实施了Business Objects,其中包含了模型......即
Public Class Whatever
Implements IWhatEver
Public Property Id as Integer
Public Property Name as String
Public Function SetWhatEver() as Whatever
'Do Whatever Settings
End Function
End Class
我正在使用ninject进行DI(依赖注入)但问题是我无法使用接口作为在动作中传递的模型,因此我尝试制作自定义模型绑定器并希望使用{{ 1}}传递给ninject和ninject为我解决它,所以我可以用元数据绑定
bindingContext.ModelType
我希望这是有道理的......我已经尝试过寻找BTW的答案,网上没有什么对我有意义,所以请你用简单的语言来解释..
修改
我正在添加下面的控制器代码,以便您更好地理解我要做的事情。我不想使用Whatever类,而是想在控制器中使用IWhatever进行处理。请看下面的例子......
Public Overrides Function BindModel(controllerContext As ControllerContext, bindingContext As ModelBindingContext) As Object
Dim modelType = ninjectPleaseResolve(bindingContext.ModelType)
Dim metaData = ModelMetadataProviders.Current.GetMetadataForType(Nothing, modelType)
bindingContext.ModelMetadata = metadata
Return MyBase.BindModel(controllerContext, bindingContext)
End Function
我希望现在有点意义..
答案 0 :(得分:0)
问题是我无法使用接口作为传递的模型 在行动中
您不应该通过操作方法传递服务。您应该通过构造函数传递服务。这样,您的容器可以为您构建控制器和所有相关对象,这样您就不必编写自定义模型绑定器。