Cle*_* T. 2 prism xamarin dryioc
我正在尝试将容器更改为Xamarin.Forms + Prism应用程序的DryIOC。Visual Studio在编译和启动应用程序时没有错误,但是当应用程序启动时,它不会启动App.OnInitialized方法,从而使应用程序处于空白屏幕。
我做了什么
App.xaml中的棱镜xmlns更改为:
xmlns:prism="clr-namespace:Prism.DryIoc;assembly=Prism.DryIoc.Forms"
将MainActivity.cs中的AndroidInitializer类更改为:
public class AndroidInitializer : IPlatformInitializer
{
public void RegisterTypes(IContainer container)
{}
}
我使用Prism DryIoC模板创建了一个空白应用程序,并且工作正常。另外,我将App.xaml,App.xaml.cs和MainActivity.cs文件与项目中的文件进行了比较,一切正常。
我还可以做些什么?
如果要进行转换,则需要执行以下操作:
1)删除以下三个程序包-Prism.Unity.Forms-Unity-CommonServiceLocator
2)将xml名称空间更新为clr-namespace:Prism.DryIoc;assembly=Prism.DryIoc.Forms您的App.xaml中
3)从App.xaml.cs取出统一命名空间,并取代它们Prism.DryIoc和DryIoc。在任何IPlatformInitializer实现中都执行相同的操作,也更改IUnityContainer为IContainer
4)更新任何服务注册,因为Unity和DryIoc之间的签名不匹配。
5)更新你特别有可能直接使用任何服务或任何IUnityContainer在使用IContainer。
6)删除obj和bin文件夹,清理并重建。
如果遇到任何麻烦,可以将您的项目与“ 汉堡包菜单”或“ 选项卡式导航”示例进行比较。
更新
从Prism 7.2开始,建议使用XML命名空间,因为http://prismlibrary.com它可以替换您以前可能拥有的所有clr-namespace声明,并且无论您使用的是正式的Prism软件包还是Prism的扩展版本之一,它都可以工作。 。
| 归档时间: |
|
| 查看次数: |
981 次 |
| 最近记录: |