我编写了一个 C# 应用程序并想模拟配置值。 例如,我在远程机器上配置了一个文件创建路径,并希望在测试时在本地创建它。
我想为实现和接口(interface)的配置创建一个包装类,使用这种方法可以模拟接口(interface)并返回模拟值。
public interface IConfigurationProvider
{
string GetFileOutputPath(string path);
}
public class ConfigurationWrapper : IConfigurationProvider
{
return ConfigurationManager.AppSettings.Get("FileOutputPath");
}
配置:
<configuration>
<appSettings>
<add key="FileOutputPath" value="RemoteServerPath" />
</appSettings>
</configuration>
这种方法确实有效,但它是这种情况下的最佳实践吗?
最佳答案
至于最佳实践,那将是一个见仁见智的问题。在干净、可测试、可维护的代码方面,该方法是常用的。
这是您方法的一种变体。 (基本上提供相同的功能)
using System.Configuration;
public interface IApplicationSettings {
string this[string setting] { get; }
}
public class ConfigAppSettings : IApplicationSettings {
public string this[string setting] {
get { return ConfigurationManager.AppSettings[setting]; }
}
}
public interface IConnectionStrings {
string this[string name] { get; }
}
public class ConfigConnectionStrings : IConnectionStrings {
public string this[string name] {
get { return ConfigurationManager.ConnectionStrings[name].ConnectionString; }
}
}
关于c# - 如何模拟 C# 应用程序的配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36311455/