C# 如何使用WP8中后台任务中的Xamarin表单PCL代码?
我正在尝试使用PCL代码从windows-phone-8中的定期后台任务访问SQLite数据库 但是,我得到了这个错误:invalidoOperationException:您必须调用Xamarin.Forms.Init;使用前 尝试在这样调用代理时执行Forms.InitC# 如何使用WP8中后台任务中的Xamarin表单PCL代码?,c#,visual-studio,windows-phone-8,xamarin,xamarin.forms,C#,Visual Studio,Windows Phone 8,Xamarin,Xamarin.forms,我正在尝试使用PCL代码从windows-phone-8中的定期后台任务访问SQLite数据库 但是,我得到了这个错误:invalidoOperationException:您必须调用Xamarin.Forms.Init;使用前 尝试在这样调用代理时执行Forms.Init protected override void OnInvoke(ScheduledTask task) { Forms.Init(); 引发UnauthorizedAccessExcept
protected override void OnInvoke(ScheduledTask task)
{
Forms.Init();
引发UnauthorizedAccessException:无效的跨线程访问
还尝试了Device.beginInvokeMainThread=>{Forms.Init;};但这也不起作用
在后台任务中使用PCL项目中的公共代码的正确方法是什么
编辑:
我在打电话给表格。在
不从后台任务执行任何UI更新。尝试使用DependencyService获取特定于平台的连接详细信息时引发异常:DependencyService.get.GetConnection
正如@Jason所建议的,通过使用不同的IoC容器解决了这个问题。他为我做了这件事 首先尝试使用TinyIoC,但得到了相同的引用错误: 错误CS0246:找不到类型或命名空间名称“BindingFlags”。 是否缺少程序集引用?CS0246 其他的
尚不清楚Xamarin的IoC为什么需要表单。Init call您可能需要尝试不依赖表单的DI容器?我对WP8后台处理知之甚少-这可能是表单中的一个bug?我知道您不需要在应用程序中多次调用Forms.Init。由于AutoFac与您使用的xamarin pcl版本不兼容,您是如何安装AutoFac的?