ここでCaliburn.Microブートストラッパーを使用しています:
https://gist.github.com/1127914
すべてのビューとビューモデルをbootstratpperと同じプロジェクトに保持すると、すべてが機能します。
しかし、Views and ViewModelsフォルダーを別のアセンブリ/プロジェクトにプッシュしたかったのですが、名前空間を変更し、ブートストラッパーを更新してそのビューモデルを見つけました。今実行すると、次のエラーが発生します
「サービスMVVMBook.ViewModules.ViewModels.MainViewModelをサポートするためのコンポーネントが見つかりませんでした」
ブートストラッパーのこの部分:
return string.IsNullOrWhiteSpace(key)
? _container.Resolve(service)
: _container.Resolve(key, service);
明らかに、VMがBootstrapperの汎用パラメーターとして設定されていても、ViewModelを接続することはできません。
public class CastleBootstrapper : Bootstrapper<MainViewModel>
私が使用している命名規則は、ViewsというフォルダーとViewModelsというフォルダーで、ファイルはMainView.xamlとMainViewModel.csです。
このアセンブリを見るようにどこに指示できますか?
また、ビューとビューモデルが別々のアセンブリにある場合に推奨されたが、問題を解決しなかったため、この部分をブートストラッパーに追加しました。
// needed if views and viewmodels are in a seperate assembly
protected override IEnumerable<Assembly> SelectAssemblies()
{
return new[]
{
Assembly.GetExecutingAssembly()
};
}