我正在使用caliburn.micro并且我已经配置了Bootstrapper,如下所示:bootstrapper configuration,但不幸的是我无法找到一种方法来请求导出值作为新实例 - 容器总是返回单例。 / p>
我一直在使用PhoneContainer(WindowsPhone),它具有PerRequest和Singleton等强大功能。对于WPF有类似的东西吗?
答案 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>