【发布时间】:2020-12-16 22:24:17
【问题描述】:
WinForms 应用程序使用以下“配置类”(部分代码):
public class Configuration
{
public static Project currentProject;
}
应用程序中的许多其他类当前使用这个Project 变量,例如:
public class Controller
{
public void processSomething()
{
Configuration.currentProject.doSomething();
}
}
出于松耦合的目的,我希望能够注入一个Project 变量作为依赖项。问题是,Configuration.currentProject 值可能会在运行时发生变化。应该如何处理?引用传递可以解决吗?
【问题讨论】:
-
这是一个 WinForms 应用程序。
-
public static Project currentProject;是否可以将其设置为 not 静态? -
@mjwills 可能不会,但我会调查一下。现在让我们假设它必须是静态的。
-
如果在 IoC 中将其设为单例对象,则不必将其设为静态。
-
你使用什么 IoC 容器?
标签: c# dependency-injection static-classes