我使用 Jon Wagner 的 Insight.Database 作为我的微型 ORM,这意味着我的(数据库)接口没有具体的实现。
我试图将其中一个接口注入我的 Prism 7 MainWindowViewModel,只是为了查看数据库是否存在(在这个阶段 - 显然,我稍后会做更多)。
但是,要么是新的 Unity 搞砸了,要么是 Prism 不喜欢我的做法。在过去只有 Unity 的日子里,使用以下代码,这并不是一件令人愉快但相当不错的事情 -
var conn = ConfigurationManager.ConnectionStrings["default"];
container.RegisterType<IConnection>(new InjectionFactory(con
=> conn.AsParallel<IConnection>());
但这是不同的。我承认我是 Prism 的新手,但 IContainerRegistry 上没有任何东西具有此功能。
通过使用
var container = containerRegistry.GetContainer();
我可以获得基础容器,但这也发生了变化,它遵循其前身的标准,避免使用带有示例的体面文档,所以我最好的近似是这个,它至少可以编译。
container.RegisterInstance(typeof(IConnection),
"DbConnection", new InjectionFactory(con =>
connection.AsParallel<IConnection>()), null);
这编译,但它绝对不注入。当 AutoWireUp 尝试实例化 MainWindowViewModel 时,我遇到了运行时错误。
任何人都可以指出答案或有用的资源吗?
胡说叔叔
相关分类