Asp.net mvc Ninject-将ModelState注入服务?

Asp.net mvc Ninject-将ModelState注入服务?,asp.net-mvc,ninject,Asp.net Mvc,Ninject,我有一个控制器,其构造函数如下: Public Sub New(Service As ICategoryService) 服务的构造函数如下所示: Public Sub New(Repository As IRepository(Of Category), IValidationDictionary) 我有一个名为ModelStateWrapper的类,它实现了IValidationDictionary: Public Class ModelStateWrapper Implemen

我有一个控制器,其构造函数如下:

Public Sub New(Service As ICategoryService)
服务的构造函数如下所示:

Public Sub New(Repository As IRepository(Of Category), IValidationDictionary)
我有一个名为ModelStateWrapper的类,它实现了IValidationDictionary:

Public Class ModelStateWrapper
    Implements IValidationDictionary

    Private ModelState As ModelStateDictionary

    Public Sub New(ModelState As ModelStateDictionary)
        Me.ModelState = ModelState

    End Sub

    Public Sub AddError(Key As String, Message As String) Implements Core.Interfaces.IValidationDictionary.AddError
        ModelState.AddModelError(Key, Message)

    End Sub

    Public ReadOnly Property IsValid As Boolean Implements Core.Interfaces.IValidationDictionary.IsValid
        Get
            Return ModelState.IsValid
        End Get
    End Property

End Class
我想将控制器的ModelState注入ModelStateWrapper,并将其注入服务。这可能吗

我查看了Ninject中的自定义提供程序,并让控制器继承BaseController类,但它似乎不起作用。有什么想法吗


另外,可以从控制器使用的服务层验证的标准方法是什么?

似乎您在尝试注入ModelState时会遇到问题,因为在action方法中,您已经有了要传递到包装器中的ModelState实例

并非每个对象都需要或应该被注入。有时,这种情况可能是其中之一,将依赖项或对象作为参数“注入”或提供给需要它的方法更干净、更容易、更简单。也就是说,将
IValidationDictionary
作为参数传递给服务中的方法。在控制器中构造一个ModelStateWrapper(新建或使用工厂),并将其传入。

可能的副本也是。