我正在使用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时,我遇到了运行时错误。
任何人都可以向我指出答案或有用的资源吗?
答案 0 :(得分:0)
通常情况下,持续的忙碌解决了这个问题。
首先,请确保App.xaml.cs包含此
using Unity;
这使我们可以回访问RegisterType
从那里开始,这就是全部。
container.RegisterType<IConnection>(new InjectionFactory(s =>
connection.AsParallel<IConnection>()));
抱歉打扰您了,伙计。现在很好。
我已经发布了答案,因为我怀疑我会不会是最后一个遇到这种情况的人,但我们充满希望。