1

我正在开发一个应用程序,它需要与 Calibrun.Micro 的 HelloScreens 示例几乎相同的功能。我将代码转移到 WPF 应用程序,但是当我尝试运行它时,BootStrapper GetInstance 方法中不断出现错误

找不到合同 WpfApplication.Framework.IShell 的任何实例。

我的配置是

 protected override void Configure()
    {
        container = new CompositionContainer(
           new AggregateCatalog(AssemblySource.Instance.Select(x => new AssemblyCatalog(x)))
           );

        var batch = new CompositionBatch();

        batch.AddExportedValue<IWindowManager>(new WindowManager());
        batch.AddExportedValue<IEventAggregator>(new EventAggregator());
        batch.AddExportedValue(container);

        container.Compose(batch);
    }

不确定它是 IoC 中的东西还是什么。任何帮助都会很棒。谢谢!!!

4

2 回答 2

1

好吧,我终于想通了。我在配置中缺少这两行

 batch.AddExportedValue<Func<IMessageBox>>(() => _container.GetExportedValue<IMessageBox>());
 batch.AddExportedValue<Func<CustomerViewModel>>(() => _container.GetExportedValue<CustomerViewModel>());
于 2012-10-16T15:14:52.023 回答
0

这绝对是 IoC 相关的。如 Derek 所说,检查 Export 属性。请注意,如果您的 ShellViewModel 在另一个程序集中,您还应该覆盖引导程序的 SelectAssemblies() 方法。

于 2012-10-16T07:57:10.123 回答