【发布时间】:2017-08-14 11:59:32
【问题描述】:
我正在使用 autofac 将我的依赖项注入到我的类中。其中几个类都实现了相同的接口。我是这样注册的
builder.RegisterType<PDFHedgeReport<object>>().As<IPDFReport<object>>().InstancePerDependency();
builder.RegisterType<PDFRefVolReport<object>>().As<IPDFReport<object>>().InstancePerDependency();
然后在我的类构造函数中我有这个
public ReportGenerationService(IScheduleRepository scheduleRepository,
ExportEngine.PDF.IPDFReport<object> pdfHedgeReport,
ExportEngine.PDF.IPDFReport<object> pdfRefVolReport,
)
{
this._scheduleRepository = scheduleRepository;
this._pdfHedgeReport = pdfHedgeReport;
this._pdfRefVolReport = pdfRefVolReport;
}
当代码运行时,访问了错误的类,代码即时测试的特定分支应该使用这个类
pdfHedgeReport
但它实际上使用的是这个 pdfRefVolReport
这是导致问题的代码行
var result = await this._pdfHedgeReport.GenerateReportForEmail(hedgeRequest, reportTitle, reportDescription, rpt);
它实际上不是被访问的 pdfHedgereport 类,它的 pdfRefVolReport
我是不是用 autofac 错误地注册了这些??
【问题讨论】:
标签: c# interface autofac registration