C# 如果没有IoC容器,我如何使用WPF MVVM工具包?

C# 如果没有IoC容器,我如何使用WPF MVVM工具包?,c#,wpf,mvvm,ioc-container,solid-principles,C#,Wpf,Mvvm,Ioc Container,Solid Principles,我一直在做S.O.L.I.D.风格的编程,即使是在视图模型级别,但它没有在工作场所的其他开发人员中获得吸引力。他们的愿望是使用MVVM灯光或类似的东西。这是一个自下而上与自上而下的实施困境,我正试图找到解决方案 我正在寻找关于如何使用MVVM工具包的功能的建议,同时避免使用IoC容器,同时继续在视图模型中使用构造函数参数来注入所需的参数。在不需要任何全局存储库的情况下,MVVM工具包的哪些功能可以让我受益 非常感谢 老实说,我不明白你想在这里完成什么。使用IoC容器如何违反SOLID?如果有什么

我一直在做S.O.L.I.D.风格的编程,即使是在视图模型级别,但它没有在工作场所的其他开发人员中获得吸引力。他们的愿望是使用MVVM灯光或类似的东西。这是一个自下而上与自上而下的实施困境,我正试图找到解决方案

我正在寻找关于如何使用MVVM工具包的功能的建议,同时避免使用IoC容器,同时继续在视图模型中使用构造函数参数来注入所需的参数。在不需要任何全局存储库的情况下,MVVM工具包的哪些功能可以让我受益


非常感谢

老实说,我不明白你想在这里完成什么。使用IoC容器如何违反SOLID?如果有什么不同的话,您可以认为构造函数DI本身就是一个IoC,因为它将依赖项传递到类中,允许视图模型在保持实体的D的同时保持它的SRP。请帮助我了解您的工作目标。使用全局存储库是一种自上而下的技术,而不是自下而上的技术。自下而上,每个类都是自包含的。SOLID有助于创建那些干净的可重用类。讨论自上而下与自下而上有点超出了这个问题的范围。但是,如果你在练习自下而上,你就不是在练习构造函数驱动的DI,这是第五个坚实的原则。因此,我不明白你的问题到底想达到什么目的。简言之,如果您真的打算创建自包含的自底向上模块,那么您就不需要实体。你想要SOLI,或者其他一些原则。最后,MVVM工具包严重依赖于管理相互依赖关系,因为它弥合了视图和视图模型之间的差距。这似乎是另一种违反自下而上原则的行为。我的意思是,实际上可能没有办法让你解决你的困境。要么使用MVVM工具包及其优点(包括IoC),要么完全放弃它,追求一种自下而上的方法,而不使用全局存储库和绑定机制。我只是不认为这两者是共存的,如果不是从全局存储库/源,一个“自下而上”的、完全自包含的类如何访问共享数据(比如查找数据)?您肯定不希望每个类都实现自己的版本(不是DRY),但也不希望事物紧密耦合。接口上的IoC和DI是一种常见的松散耦合方式,以保持稳定。