1

我正在使用 Ninject.MVC3。

private static void RegisterServices(IKernel kernel)
{
    kernel.Bind<Repository>().To<Repository>();
}       

在 App_Start 中像这样注册它们。它在请求此存储库的控制器上运行良好。但是我也有一些需要这个存储库的类。

        [Inject]
        public MemberShipService(Repository repository)
        {
            this.Repository = repository;
        }

^来自类构造函数的示例。我尝试过构造函数注入,这只是给了我错误,因为它为构造函数请求了一个参数。属性注入根本不起作用。

我需要做一些额外的事情来使构造函数或属性注入在 asp.net mvc3 中工作吗?除了上面发布的行之外,我还没有在 NinjectWebCommon 中进行任何其他配置。

4

1 回答 1

3

您需要使用依赖解析器解析该类的实例才能使用它,创建您MemberShipService使用的实例:

var memberShipService = 
    DependencyResolver.Current.GetService(typeof(MemberShipService)) as MemberShipService;

Repository这将使用您指定的构造函数绑定您的实例变量。

于 2012-05-23T11:10:19.417 回答