如何将依赖注入私有构造函数?

时间:2015-03-07 12:11:16

标签: c# asp.net-mvc ninject

我正在研究ASP.net MVC应用程序中的模块,其中我有一个单例类,它想要从数据库查询然后进行一些处理。我正在使用存储库模式,其中我的repo是ex:IQueueProcessRepository,我想将其注入到我的单例类私有构造函数中。

我找不到办法做到这一点。有人可以解释一下如何做到这一点吗?

如果我想做的事情是错误的,你也可以纠正。感谢

1 个答案:

答案 0 :(得分:1)

要回答你的问题,没有办法。根据定义,其他类无法访问私有构造函数。

如果你真的需要它是一个单例,请在Ninject的Singleton范围内绑定它。然后Ninject会在第一次请求时自动将您的存储库注入单例。

如果要控制单例的构造,请使用.ToConstant(object)进行绑定。

var singleton = Kernel.Get<MySingleton>();
Bind<IMySingleton>().ToConstant(singleton);