WPF Caliburn.micro如何从CompositionContainer获取每个请求的实例

时间:2013-06-02 20:46:56

标签: wpf containers caliburn.micro bootstrapper

我正在使用caliburn.micro并且我已经配置了Bootstrapper,如下所示:bootstrapper configuration,但不幸的是我无法找到一种方法来请求导出值作为新实例 - 容器总是返回单例。 / p>

我一直在使用PhoneContainer(WindowsPhone),它具有PerRequest和Singleton等强大功能。对于WPF有类似的东西吗?

1 个答案:

答案 0 :(得分:2)

如果你在文章中使用MEF,那么当你想要创建一个实例时,每个请求会像这样导出:

interface IFileReader {
    int ReadChar(string fileName);
}

[Export(typeof(IFileReader))]
[PartCreationPolicy(CreationPolicy.NonShared)]
class FileReaderImpl : IFileReader {
    // IMPLEMENTATION GOES HERE
}

当然这特定于MEF (MEF Lifestyles) ,但是如果你想要你可以使用你最喜欢的容器,那么Caliburn.Micro提供了一个名为SimpleContainer的容器,文档即将推出,但API非常直观,如果你喜欢,你可以使用其他容器,如Unity,Ninject等。查看this link关于使用Unity,其他容器的过程非常相似。 / p>