2016-03-28 9 views
1

私は新しいXamarin.iOSプロジェクトを開始しましたが、MvxImageViewLoaderを動作させることができません。私は、最新のDownloadCache、ファイルやJSONのプラグイン(バージョン4.1)を添加し、私のセットアップファイル内でそれらを構成した:MvvmCross 4.1 - MvxImageViewLoaderが動作しません

カスタムMvxTableViewCellインサイド
protected override void AddPluginsLoaders (MvxLoaderPluginRegistry registry) 
{ 
    registry.AddConventionalPlugin<MvvmCross.Plugins.DownloadCache.iOS.Plugin>(); 
    registry.AddConventionalPlugin<MvvmCross.Plugins.File.iOS.Plugin>(); 

    base.AddPluginsLoaders (registry); 
} 

protected override void InitializeLastChance() 
{ 
    MvvmCross.Plugins.DownloadCache.PluginLoader.Instance.EnsureLoaded(); 
    MvvmCross.Plugins.File.PluginLoader.Instance.EnsureLoaded(); 
    MvvmCross.Plugins.Json.PluginLoader.Instance.EnsureLoaded(); 

    base.InitializeLastChance(); 
} 

私は画像をバインドしようとしている:

public partial class MyTableViewCell : MvxTableViewCell 
{ 
    public static readonly NSString Key = new NSString ("MyTableViewCell"); 
    public static readonly UINib Nib; 

    private readonly MvxImageViewLoader _imageViewLoader; 

    static MyTableViewCell() 
    { 
     Nib = UINib.FromName ("MyTableViewCell", NSBundle.MainBundle); 
    } 

    public MyTableViewCell (IntPtr handle) : base (handle) 
    { 
     _imageViewLoader = new MvxImageViewLoader(() => imgLarge); 

     this.DelayBind (() => { 
      var set = this.CreateBindingSet<MyTableViewCell, MyViewModel>();     
      set.Bind (_imageViewLoader).To (vm => vm.ImageUrlLarge); 
      set.Apply(); 
     }); 
    } 
} 
アプリケーションの出力で

関連のエラー:

mvx: Diagnostic: 366.64 failed to download image http://3.bp.blogspot.com/-2-9DK3D-bo8/T-g6U58ZU_I/AAAAAAAADpQ/NKEmG72Hl0I/s1600/Funny_Hamster_04.jpg : TypeLoadException: Could not load type 'MvxImageCache`1' from assembly ‘…/MvvmCross.Plugins.DownloadCache.dll'. 
..... 
at MvvmCross.Plugins.DownloadCache.MvxDynamicImageHelper`1+<RequestImageAsync>d__29[T].MoveNext() [0x001a7] in C:\vcs\git\MvvmCross-Plugins\DownloadCache\MvvmCross.Plugins.DownloadCache\MvxDynamicImageHelper.cs:135 

がエラーとその行のソースコードを見ると、それはトンと思われます彼は、プラグインがのImageCacheを解決することはできませんDownloadCache:

var cache = Mvx.Resolve<IMvxImageCache<T>>(); 

私は私がになっていたものを登録しませんでしたか?これはおそらく最新バージョンのバグですか?私がオンラインで見るチュートリアル、質問などはすべて、バージョン3.X用です。誰でもDownloadCacheプラグインが4.Xで動作していますか?

更新 私はこの問題を紹介する新しいMvvmCrossソリューションを作成しました。あなたはここに問題を再現することができます https://github.com/ogoldfinger/MvvmCrossDownloadCacheTest

+0

Mvx.Resolveの実行時に例外から何が伝えられますか? – Cheesebaron

+0

アセンブリ 'MvvmCross.Plugins.DownloadCache.dll'から 'MvxImageCache'1'タイプを読み込めませんでした – Oren

+0

内的例外などの何かがあるはずです。 – Cheesebaron

答えて

4

を手動でこのNugetをインストール:System.Collections.Immutable

これはSystem.Collections.Immutableへの依存が欠落し、DownloadCacheプラグインの問題です。これを参照してください:https://github.com/MvvmCross/MvvmCross-Plugins/issues/78

問題は既に解決されていますので、次回のダウンロードパッケージのアップデートでこれを行う必要はありません。

+0

ビンゴ!これは悔しいです。チップのおかげで、 – Oren

+0

これを試してみてください(4.1.1にdownloadcacheプラグインをアップデートしても、「System.Resources.ResourceManager 4.0.0」パッケージをインストールできませんでした)。このパッケージをインストールしようとしています'Xamarin.iOS、Version = v1.0'を対象とするプロジェクトに追加しますが、このパッケージにはアセンブリ参照やそのフレームワークと互換性のあるコンテンツファイルが含まれていません。 – Citroenfris

関連する問題