默认情况下,将返回最后注册的类型,这就是您看到的。
您可能想了解如何注册不同的类型
by key
.
代码看起来像这样。
var builder = new ContainerBuilder();
builder.RegisterType<PDFHedgeReport<object>>().Keyed<ExportEngine.PDF.IPDFReport<object>>("first");
builder.RegisterType<PDFRefVolReport<object>>().Keyed<ExportEngine.PDF.IPDFReport<object>>("second");
var container = builder.Build();
一些构造函数:
ctor(IIndex<string, ExportEngine.PDF.IPDFReport<object>> pdfHedgeReportCollection)
{
this.hedgeRefReport = pdfHedgeReportCollection["first"];
this.refVolReport = pdfHedgeReportCollection["second"]
}
这就是我在使用Autofac时做这类事情的方式,效果很好。