1

Caliburn Micro 1.4 でコンパイルして正常に動作する既存のコードがあります。

private static readonly Lazy<IShell> shellLazy = new Lazy<IShell>(IoC.Get<IShell>, true);

1.4 バージョンを削除し、NuGet を介して 1.5 バージョンをインストールしました。何も変更せずに、この行でエラーがスローされるようになりました。

エラー 1 'System.Lazy.Lazy(System.Func, System.Threading.LazyThreadSafetyMode)' に最適なオーバーロードされたメソッド マッチには無効な引数がいくつかあります C:\Users\User\Documents\Visual Studio 2012\Projects\Arnova\Src\CShellCore \Shell.cs 35 58 CShellCore

このエラーを取り除く唯一の方法は、Lazy<> の使用をまったく避けることです。

private static readonly IShell shellLazy = IoC.Get<IShell>();

IoC.Get<> と Lazy<> に関連するもの、およびバージョン 1.4 から 1.5 に変更された可能性があるものを検索しましたが、これらのバージョン間での Caliburn Micro の変更点とこれを回避する方法を説明するものは見つかりません。

4

2 に答える 2

0

なぜこれをこのように変更する必要があるのか​​ わかりませんか?Intellisense は、1.4 と 1.5 の両方の caliburn micro バージョンで同じ情報を表示します。これらの関数は同じパラメーターを想定しているようです。

ただし、これはこれまでのところ機能しているようです。

private static readonly Lazy<IShell> shellLazy = new Lazy<IShell>(() => { return IoC.Get<IShell>(); }, true);
于 2013-07-08T18:34:12.643 に答える