c# - 如何推迟类(class)的解决?

标签 c# .net mvvm ninject

这是我的场景:

我有一个这样的应用程序:

我使用 Ninject 作为我的 DI 容器,并且正在使用 WPF

enter image description here

1-有ClassB被注入(inject)到ClassA,它被注入(inject)到1stViewModel,它被注入(inject)到1stView >

2- 再次有 ClassR 被注入(inject)到 ClassQ 中,它被注入(inject)到 2ndViewModel 中,而 2ndViewModel 又被注入(inject)到 2ndView

3-这发生在第三个和第四个窗口

问题:

1-当需要时(当用户单击第一个按钮或第二个按钮时)而不是在我的组合根中,我可以做什么来解析这些类?

2-如果我不将我的ViewModels注入(inject)到我的 View 中,并且我想在我的 View 中创建我的ViewModel的新实例,显然它需要一个参数例如,第一个为 IClassA,第二个为 IClassQ。我该怎么做?

最佳答案

使用 ninject.extensions.factory 可以定义 ToFactory您定义的给定接口(interface)的绑定(bind),或者您可以注入(inject) Lazy<T>在你的构造函数中。更多详细信息请参阅此处扩展的 wiki https://github.com/ninject/ninject.extensions.factory/wiki

关于c# - 如何推迟类(class)的解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17633528/

相关文章:

c# - C# 中的 WeakReference - 操作实例是如何丢失的?

c# - WebService客户端异常: Cannot Import wsdl:binding

c# - WiX 安装程序 : Can one msi have - one windows app and one windows service using WiX

mvvm - 是否可以在 F# 中将 INotifyPropertyChanged 实现为类型扩展

C#将一个方法作为参数传递给另一个方法

c# - 格式化 - 添加逗号,2 位小数到单元格值 vb.net excel interop

c# - ASP.NET:将 RNGCryptoServiceProvider 的输出暴露给外部是否存在安全风险?

c# - 在 Where 方法中返回匿名类型

c# - ASP.NET CORE, View 模型在传回 Controller 时所有字段都为空

c# - 双击后获取行信息