我正在研究ASP.net MVC应用程序中的模块,其中我有一个单例类,它想要从数据库查询然后进行一些处理。我正在使用存储库模式,其中我的repo是ex:IQueueProcessRepository,我想将其注入到我的单例类私有构造函数中。
我找不到办法做到这一点。有人可以解释一下如何做到这一点吗?
如果我想做的事情是错误的,你也可以纠正。感谢
答案 0 :(得分:1)
要回答你的问题,没有办法。根据定义,其他类无法访问私有构造函数。
如果你真的需要它是一个单例,请在Ninject的Singleton范围内绑定它。然后Ninject会在第一次请求时自动将您的存储库注入单例。
如果要控制单例的构造,请使用.ToConstant(object)
进行绑定。
var singleton = Kernel.Get<MySingleton>();
Bind<IMySingleton>().ToConstant(singleton);