【发布时间】:2014-07-01 23:04:45
【问题描述】:
我正在尝试按照http://www.mindscapehq.com/blog/index.php/2012/2/1/caliburn-micro-part-4-the-event-aggregator/ 的教程开始使用 Caliburn Micro
但是,教程中的代码会产生错误。在该页面上,提供了以下引导程序代码:
using Caliburn.Micro;
using System.ComponentModel.Composition;
using System.ComponentModel.Composition.Hosting;
using System.ComponentModel.Composition.Primitives;
public class AppBootstrapper : Bootstrapper<AppViewModel>
{
private CompositionContainer container;
protected override void Configure()
{
container = new CompositionContainer(new AggregateCatalog(AssemblySource.Instance.Select(x => new AssemblyCatalog(x)).OfType<ComposablePartCatalog>()));
CompositionBatch batch = new CompositionBatch();
batch.AddExportedValue<IWindowManager>(new WindowManager());
batch.AddExportedValue<IEventAggregator>(new EventAggregator());
batch.AddExportedValue(container);
container.Compose(batch);
}
protected override object GetInstance(Type serviceType, string key)
{
string contract = string.IsNullOrEmpty(key) ? AttributedModelServices.GetContractName(serviceType) : key;
var exports = container.GetExportedValues<object>(contract);
if (exports.Count() > 0)
{
return exports.First();
}
throw new Exception(string.Format("Could not locate any instances of contract {0}.", contract));
}
}
我找不到名为Bootstrapper 的类(通用或其他),但我已经能够扩展BootstrapperBase。
但是,我在声明 container 的那一行遇到了麻烦。 AssemblySource 没有名为 Select 的方法。
那是什么?这是 2.0 版和 1.0 版之间的区别吗?如果是这样,我可以遵循一些更新的学习材料吗?
【问题讨论】:
标签: c# wpf caliburn.micro