小编Cra*_*Zee的帖子

您在依赖项中寻找什么来确定它是否应该是一个注入依赖项?

我很难搞清楚什么时候应该注入一个依赖.让我们从我的项目中使用一个简单的例子:

class CompanyDetailProvider : ICompanyDetailProvider {
    private readonly FilePathProvider provider;
    public CompanyDetailProvider(FilePathProvider provider) {
        this.provider = provider;
    }

    public IEnumerable<CompanyDetail> GetCompanyDetailsForDate(DateTime date) {
        string path = this.provider.GetCompanyDetailFilePathForDate(date);
        var factory = new DataReaderFactory();
        Func<IDataReader> sourceProvider = () => factory.CreateReader(
            DataFileType.FlatFile, 
            path
        );
        var hydrator = new Hydrator<CompanyDetail>(sourceProvider);
        return hydrator;
    }
}
Run Code Online (Sandbox Code Playgroud)

(不是生产质量!)

ICompanyDetailProvider负责CompanyDetail为消费者提供s的实例.具体实施CompanyDetailProvider由补水的情况下,确实是CompanyDetail从使用一个文件Hydrator<T>,它使用反射来填充的情况下,T从来源IDataReader.显然CompanyDetailProvider依赖于DataReaderFactory(返回OleDbDataReader给定文件路径的实例)和Hydrator.是否应注入这些依赖关系?注射是否正确FilePathProvider?我应该检查什么品质来决定是否应该注射它们?

.net c# dependency-injection

6
推荐指数
1
解决办法
196
查看次数

标签 统计

.net ×1

c# ×1

dependency-injection ×1