Adr*_*zyk 6 c# asp.net-mvc constructor entity-framework
如何根据参数调用构造函数内的基础构造函数?例如:
public SomeConstructor (){
if(SomeParameter == "something") //here call base("something");
else //here call base("something else")
}
Run Code Online (Sandbox Code Playgroud)
在我的例子中
SomeParameter
Run Code Online (Sandbox Code Playgroud)
可以是例如本地计算机名称.
为了解释我在做什么,我想根据计算机名确定构造函数.我正在研究MVC项目,当我在服务器上发布项目时,我仍然忘记更改连接字符串的名称.所以,我想指定计算机名称==我的计算机名称,然后调用
:base("DefaultConnection")
Run Code Online (Sandbox Code Playgroud)
否则,请致电
:base("ServerConnectionString")
Run Code Online (Sandbox Code Playgroud)
你不能这样做,你只能在后面的例子中调用,即使这样,你的例子都传递一个字符串而不改变参数类型,所以这种方式似乎毫无意义(它们甚至不是不同的构造函数)你在打电话).您可以通过传统方式调用构造函数,并确保提供的值在此之前是有效值.
作为一个袖口示例,请考虑以下事项:
public SomeConstructor()
: base(Configuration.ConnectionString) {
}
public static Configuration {
public static string ConnectionString {
get {
/* some logic to determine the appropriate value */
#if DEBUG
return ConfigurationManager.ConnectionStrings["DebugConnectionString"];
#else
return ConfigurationManager.ConnectionStrings["ReleaseConnectionString"];
#endif
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6237 次 |
| 最近记录: |