我们有一个WPF应用程序,它分为几个C锋利的项目。我们的业务层还需要向容器注册一些服务对象。我们相信使用Unity的方法是
Container.RegisterType<ISomeClass,SomeClass>();
在业务层C的Sharp库中,然后在主UI应用程序中
UnityContainer.AddNewExtension<T>();
如果我们使用棱镜,有什么等效方法?具体来说,我们考虑只在业务库中使用Unity(而不是Prism),以便我们可以将其移植到Xamarin Mac和Linux。我们只会在WPF UI应用程序项目中使用Prism。能行吗?
谢谢
如果我们使用棱镜,有什么等效方法?
IContainerRegistry
中有一些方法,但是它们的行为没有得到很好的记录(除了“它们按照包装的容器的方法进行工作”,它们仅涵盖最常见的用例。
好消息是,您可以使用容器的GetContainer
扩展方法来取回容器:
using Prism.Unity.Ioc;
containerRegistry.GetContainer().AddExtension<TheNeatExtension>();