为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Prism 7 和 Unity 进行参数注入

使用 Prism 7 和 Unity 进行参数注入

C#
哈士奇WWW 2022-11-21 21:16:49
我使用 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 时,我遇到了运行时错误。任何人都可以指出答案或有用的资源吗?
查看完整描述

1 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

通常,继续胡闹已经解决了这个问题。

首先,确保 App.xaml.cs 包含这个

using Unity;

这使我们可以重新访问 RegisterType<T>()。

从那里开始,这就是所需要的。

container.RegisterType<IConnection>(new InjectionFactory(s => 
connection.AsParallel<IConnection>()));

抱歉打扰你们了,伙计们。现在好了。

我已经发布了答案,因为我怀疑我会是最后一个遇到这个问题的人,但我们生活在希望之中。


查看完整回答
反对 回复 2022-11-21
  • 1 回答
  • 0 关注
  • 104 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号