我正在尝试在Windows Forms应用程序中使用Simple Injector。不幸的是,https://simpleinjector.readthedocs.org/en/latest/windowsformsintegration.html上的文档不正确或已过期。

当您实际运行该示例时,它将导致以下错误:The configuration is invalid. The following diagnostic warnings were reported:-[Disposable Transient Component] MainView is registered as transient, but implements IDisposable.
此外,我正在构建的应用程序是Winforms MVP(被动 View )项目。我可以将MainView的范围更改为单例,并且可以正常工作。但是由于这个范围问题,我一生都无法解决如何打开其他窗口的问题。有没有人在具有多个窗口的真实MVP Winforms应用程序中成功使用SimpleInjector?我很好奇看到Presenters,Forms/Views和Main入口点是如何配置的以及它们的Lifestyle范围是什么。

仅供引用,我尝试使用LifetimeScoping和ExecutionContextScoping扩展,但绝对没有任何效果。也许这只是PEBKAC的问题。

谢谢,
埃里克

最佳答案

使用container.RegisterSingleton ();

http://simpleinjector.readthedocs.org/en/latest/lifetimes.html

关于c# - 简单注入(inject)器-Windows表单示例已损坏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33555088/

10-11 21:07