将配置信息注入到新构建的实例中的以下方法的优缺点是什么?你会用哪个?依赖注入设计问题
interface IApplicationConfiguration {
string SourcePath { get; }
string DestinationPath { get; }
}
选项之一:
class DailyFilePathProvider {
private readonly string sourcePath;
private readonly string destinationPath;
public DailyFilePathProvider(string sourcePath, string destinationPath) {
this.sourcePath = sourcePath;
this.destinationPath = destinationPath;
}
}
var configuration = container.Resolve<IApplicationConfiguration>();
var provider = new DailyFilePathProvider(configuration.SourcePath, configuration.DestinationPath);
选项二:
class DailyFilePathProvider {
private readonly string sourcePath;
private readonly string destinationPath;
public DailyFilePathProvider(IApplicationConfiguration configuration) {
this.sourcePath = configuration.SourcePath;
this.destinationPath = configuration.DestinationPath;
}
}
var configuration = container.Resolve<IApplicationConfiguration>();
var provider = new DailyFilePathProvider(configuration);
感谢所有的想法。
我更愿意将ApplicationConfiguration *留在IoC之外 – 2011-02-11 14:48:11
你是什么意思? – JackBlackAndWhite 2011-02-11 14:49:27