ServiceStack – 依赖似乎不会被注入?
发布时间:2020-12-14 04:55:11 所属栏目:百科 来源:网络整理
导读:我有以下存储库类: public class RepositoryT : IDisposable where T : new(){ public IDbConnectionFactory DbFactory { get; set; } //Injected by IOC IDbConnection db; IDbConnection Db { get { return db ?? (db = DbFactory.Open()); } } public Re
我有以下存储库类:
public class Repository<T> : IDisposable where T : new() { public IDbConnectionFactory DbFactory { get; set; } //Injected by IOC IDbConnection db; IDbConnection Db { get { return db ?? (db = DbFactory.Open()); } } public Repository() { Db.DropAndCreateTable<T>(); } public List<T> GetByIds(long[] ids) { return Db.Ids<T>(ids).ToList(); } } 然后在我的AppHost.Configure()中.我像这样注册依赖: container.Register<IDbConnectionFactory>(c => new OrmLiteConnectionFactory(ConfigurationManager. ConnectionStrings["AppDb"].ConnectionString,SqlServerDialect.Provider)); container.RegisterAutoWired<Repository<Todo>>().ReusedWithin(Funq.ReuseScope.None); 但是当我运行我的应用程序时,似乎我的DbFactory为null并且没有正确注入,因为我得到了Null Reference异常. 解决方法
尝试访问构造函数中的任何依赖项时它将为null,因为在IOC有机会注入任何依赖项之前启动了该类.
我会将任何初始化/设置逻辑移出到AppHost.Configure()中,例如: using (var db = container.Resolve<IDbConnectionFactory>().Open()) { db.DropAndCreateTable<MyType>(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |