我有一个名为Conext的类,它的一个构造函数接受一个参数:
public enum enumDataBaseName {db1=1,db2};
public class Context:IContext
{
public Context(enumDatabaseName database)
{
//...
}
}
在应用程序中,有时我需要连接到db1或db2。 有什么办法可以在SimpleInjector配置中声明Context并根据枚举参数使用它吗?
答案 0 :(得分:0)
您的enumDatabaseName
提供运行时数据并按照here的说明,应用程序组件不应在构造期间要求运行时数据,而是:
运行时数据应该流经已构造的对象图的方法调用
本文介绍了两种解决方案。在您的情况下,我发现它最有可能将enumDatabaseName database
参数移出构造函数并移动到IConext
方法的方法参数中。例如:
public interface IConext
{
void Save(Item item, enumDatabaseName database);
}