- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
使用 mvvmCross 文件插件时出现以下错误。我尝试使用使用“File Plugin 3.1.1-beta”的 N-14 代码示例,我得到了错误,我还使用了一个全新的项目,从 nuGet 下载了最新的插件版本,我也得到了同样的错误。
这似乎和这个人遇到的问题是一样的:
https://github.com/MvvmCross/MvvmCross/issues/510
这似乎是错误信息中的主线:
Failed to resolve parameter for parameter fileStore of type IMvxFileStor
at Cirrious.CrossCore.IoC.MvxSimpleIoCContainer.GetIoCParameterValues (System.Type type, System.Reflection.ConstructorInfo firstConstructor) [0x00000] in <filename unknown>:0
我已经尝试重新启动 xamarin studio 和我的 MacPro 等。我已经使用了位置和信使插件,没有任何问题
请指教
跟踪:
2014-03-17 20:37:44.836 MCOTaxiIOS[2730:60b] TouchNavigation:Diagnostic: 0.56 Navigate requested [0:] TouchNavigation:Diagnostic: 0.56 Navigate requested Resolved pending breakpoint at '/Developer/Projects/MCO/MCO.IOS/Views/FirstView.cs:58,1' to MonoTouch.UIKit.UIViewController MCO.IOS.Views.FirstView.CreateTabFor (string title, string imageName, Cirrious.MvvmCross.ViewModels.IMvxViewModel viewModel) [0x0002f]. [0:] 2014-03-17 20:37:44.875 MCOIOS[2730:60b] mvx:Diagnostic: 0.59 Request is null - assuming this is a TabBar type situation where ViewDidLoad is called during construction... patching the request now - but watch out for problems with virtual calls during construction [0:] mvx:Diagnostic: 0.59 Request is null - assuming this is a TabBar type situation where ViewDidLoad is called during construction... patching the request now - but watch out for problems with virtual calls during construction Resolved pending breakpoint at '/Developer/Projects/MCO/MCO.Common/Services/LocationService.cs:110,1' to void MCO.Common.LocationService.OnError (Cirrious.MvvmCross.Plugins.Location.MvxLocationError error) [0x00001]. [0:] 2014-03-17 20:37:44.917 MCOIOS[2730:60b] mvx:Warning: 0.64 Problem creating viewModel of type FirstViewModel - problem MvxIoCResolveException: Failed to resolve parameter for parameter fileStore of type IMvxFileStore when creating MCO.Common.ViewModels.FirstViewModel at Cirrious.CrossCore.IoC.MvxSimpleIoCContainer.GetIoCParameterValues (System.Type type, System.Reflection.ConstructorInfo firstConstructor) [0x00000] in :0 at Cirrious.CrossCore.IoC.MvxSimpleIoCContainer.IoCConstruct (System.Type type) [0x00000] in :0 at Cirrious.CrossCore.Mvx.IocConstruct (System.Type t) [0x00000] in :0 at Cirrious.MvvmCross.ViewModels.MvxDefaultViewModelLocator.TryLoad (System.Type viewModelType, IMvxBundle parameterValues, IMvxBundle savedState, IMvxViewModel& viewModel) [0x00000] in :0 [0:] mvx:Warning: 0.64 Problem creating viewModel of type FirstViewModel - problem MvxIoCResolveException: Failed to resolve parameter for parameter fileStore of type IMvxFileStore when creating MCO.Common.ViewModels.FirstViewModel at Cirrious.CrossCore.IoC.MvxSimpleIoCContainer.GetIoCParameterValues (System.Type type, System.Reflection.ConstructorInfo firstConstructor) [0x00000] in :0 at Cirrious.CrossCore.IoC.MvxSimpleIoCContainer.IoCConstruct (System.Type type) [0x00000] in :0 at Cirrious.CrossCore.Mvx.IocConstruct (System.Type t) [0x00000] in :0 at Cirrious.MvvmCross.ViewModels.MvxDefaultViewModelLocator.TryLoad (System.Type viewModelType, IMvxBundle parameterValues, IMvxBundle savedState, IMvxViewModel& viewModel) [0x00000] in :0
堆栈跟踪:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Exception: Failed to construct and initialize ViewModel for type CollectABull.Core.ViewModels.FirstViewModel from locator MvxDefaultViewModelLocator - check MvxTrace for more information at Cirrious.MvvmCross.ViewModels.MvxViewModelLoader.LoadViewModel (Cirrious.MvvmCross.ViewModels.MvxViewModelRequest request, IMvxBundle savedState, IMvxViewModelLocator viewModelLocator) [0x00000] in :0 at Cirrious.MvvmCross.ViewModels.MvxViewModelLoader.LoadViewModel (Cirrious.MvvmCross.ViewModels.MvxViewModelRequest request, IMvxBundle savedState) [0x00000] in :0 at Cirrious.MvvmCross.Touch.Views.MvxViewControllerExtensionMethods.LoadViewModel (IMvxTouchView touchView) [0x00000] in :0 at Cirrious.MvvmCross.Touch.Views.MvxViewControllerExtensionMethods+<>c_DisplayClass1.b_0 () [0x00000] in :0 at Cirrious.MvvmCross.Views.MvxViewExtensionMethods.OnViewCreate (IMvxView view, System.Func`1 viewModelLoader) [0x00000] in :0 at Cirrious.MvvmCross.Touch.Views.MvxViewControllerExtensionMethods.OnViewCreate (IMvxTouchView touchView) [0x00000] in :0 at Cirrious.MvvmCross.Touch.Views.MvxViewControllerAdapter.HandleViewDidLoadCalled (System.Object sender, System.EventArgs e) [0x00000] in :0 at at (wrapper delegate-invoke) :invoke_void_this__object_EventArgs (object,System.EventArgs) at Cirrious.CrossCore.Core.MvxDelegateExtensionMethods.Raise (System.EventHandler eventHandler, System.Object sender) [0x00000] in :0 at Cirrious.CrossCore.Touch.Views.MvxEventSourceTabBarController.ViewDidLoad () [0x00000] in :0 at MCO.IOS.Views.FirstView.ViewDidLoad () [0x00002] in /Developer/Projects/MCO/MCO.IOS/Views/FirstView.cs:26 at MCO.IOS.Views.FirstView..ctor () [0x0000f] in /Developer/Projects/MCO/MCO.IOS/Views/FirstView.cs:18 at at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (System.Reflection.MonoCMethod,object,object[],System.Exception&) at System.Reflection.MonoCMethod.InternalInvoke (System.Object obj, System.Object[] parameters) [0x00002] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Reflection/MonoMethod.cs:537
最佳答案
MvvmCross 插件通常分为两部分。核心 PCL 项目中有接口(interface)。然后是平台特定的实现:Android、iOS 等。
如果查看 NuGet 包,您会看到各种平台目标。 NuGet 将根据您的项目类型引用正确的程序集。
MvvmCross 使用 IoC 在运行时注入(inject)依赖项。您的 ViewModel 将引用 IFileStore
,而 MvvmCross 将在构建 ViewModel 时尝试解决该依赖关系。
但是,MvvmCross 只能在接口(interface)的具体实现已经注册的情况下解析它。通常,您会在 App.Initialize
中使用代码来注册所有以“Service”结尾的类型。您还可以显式注册类型。
由于插件有共同的模式,MvvmCross 支持在启动时自动注册插件。它的方法是通过 NuGet 添加到平台特定项目的 Bootstrap
文件。这通常看起来像:
public class FilePluginBootstrap
: MvxPluginBootstrapAction<Cirrious.MvvmCross.Plugins.File.PluginLoader>
{
}
在启动时,MvvmCross 寻找所有实现IMvxBootstrapAction
的类型。每个插件还有一个 PluginLoader
类,用于在 MvvmCross 中注册类型。像这样:
public class Plugin
: IMvxPlugin
{
public void Load()
{
Mvx.RegisterType<IMvxFileStore, MvxTouchFileStore>();
}
}
如您所见,通过在 Core PCL 项目和您的平台特定项目中安装插件包,MvvmCross 拥有所有部件以自动在 IoC 容器中注册实现。
TL;DR:确保您在 Core PCL 和平台特定项目中都安装了您的插件。
关于c# - Mvvmcross:文件插件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22465070/
我在互联网上搜索了很多小时,但没有找到满意的结果,所以 -VSTO Addin 和 COM Addin(我们作为类库项目制作并使用 Excel 对象)之间有什么区别?VSTO 项目是否有任何限制,例如
我在互联网上搜索了很多小时,但没有找到满意的结果,所以 -VSTO Addin 和 COM Addin(我们作为类库项目制作并使用 Excel 对象)之间有什么区别?VSTO 项目是否有任何限制,例如
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
我正在寻找有关如何构建可扩展 WCF 服务器(具有动态加载的服务)的建议,最好使用 System.Addins 或 MEF。 服务器应托管实现最小“插件”API(StartService/StopSe
有没有一种方法可以使用加载浏览器扩展/插件/插件的 headless 浏览器(即 PhantomJS、Selenium)来运行自动测试? 更具体地说,我想模拟广告拦截器(如 Ghostery、ad-b
我是 gradle 的新手,我使用 artifactory 作为我的 repo 服务器。我在网上查看了如何将我的项目发布到我的 repo 服务器,发现我可以使用 maven-publish 或使用 a
我想禁用某些状态的点击/事件,并仅使少数状态可点击。我通读了http://newsignature.github.io/us-map/处的文档,并且找不到与此问题相关的任何内容。 最佳答案 http:
据我了解,在Intellij中使用idea插件打开Maven构建的项目并不是最好的方法,即调用: mvn idea:idea 但是直接打开pom文件(Intellij有默认的Maven插件);同样的事
使用Artifactory plugin对于 Jenkins pipeline 来说是一种幸福,只要遵循文档就可以了。但后来我介绍了Maven Flatten plugin解析父模块和子模块 mvn
我已经安装了Elasticsearch版本1.7.1。一切正常。我也安装了 JDBC 驱动程序。检查下面我的插件文件夹 目录E:\Xampp\htdocs\my-elastic\elasticsear
在我使用 webpack common chunks 插件创建包含第三方库(如 angular、react、lodash 等)的 vendor 包之前,但后来我知道了 webpack dll
我们正在尝试使用(Jenkins、sonar、eclipse ...)安装 CI 平台。 为了让每个开发人员都可以在提交之前对他的代码进行分析,我想知道两种选择: 使用 Sonar 插件运行本地分析。
我知道这是一个比较特殊的问题。尽管如此,也许有些人知道这一点: 我想在 Eclipse 中使用 Maven 编译 Hector=> 分支:0.7.0 和标签:hector-0.7.0-29(https
我卡住了。我一直在尝试寻找或自己创建一个简单的准系统示例,说明如何为 VS 2010 Express 创建 Outlook 插件。我知道这在 VS 2010 Pro 中更简单,但是,在快速版本中真的不
我有以下排除过滤器来忽略所有 R 文件类: findbugs-exclude-filter.xml 当我将它用于 FindBugs-IDEA 插件时,它可以
我刚开始玩 CakePHP,我发现了 Wildflower CMS .我喜欢这个想法,并打算开始修补它。不过,我有一个问题。 在自述文件中,我发现了以下内容:“Wildflower 不是也不会是 Ca
虽然现在大部分情况都是使用n-api来编写插件,但是底层毕竟是v8(和libuv),使用v8编写简单的插件,同时熟悉v8的使用。 本文介绍在写c++插件时,简单又常用的写法,其实本质上,写插件
本篇是 Python 系列教程第 3 篇,更多内容敬请访问我的 Python 合集 Visual Studio Code的安装非常简单,就不放这里增加文章篇幅了。 相比PyCharm,V
Maven – 插件 什么是 Maven 插件? Maven 实际上是一个依赖插件执行的框架,每个任务实际上是由插件完成。Maven 插件通常被用来: 创建 jar 文件 创建 war
我正在编写一个插件来添加带有标签 [deposit_page] 的页面;该标记应替换为一些 PHP 代码。 这就是我所拥有的,但它不起作用。有什么我遗漏或做错了什么吗? function deposi
我是一名优秀的程序员,十分优秀!