Ich benutze Autofac, um meine Abhängigkeiten in meine Klassen zu injizieren. Mehrere dieser Klassen implementieren alle dieselbe Schnittstelle. Ich registriere sie wie dieseAutofac mehrere Klassen von der gleichen Schnittstelle geerbt
builder.RegisterType<PDFHedgeReport<object>>().As<IPDFReport<object>>().InstancePerDependency();
builder.RegisterType<PDFRefVolReport<object>>().As<IPDFReport<object>>().InstancePerDependency();
dann in meiner Klasse Konstruktor Ich habe diesen
public ReportGenerationService(IScheduleRepository scheduleRepository,
ExportEngine.PDF.IPDFReport<object> pdfHedgeReport,
ExportEngine.PDF.IPDFReport<object> pdfRefVolReport,
)
{
this._scheduleRepository = scheduleRepository;
this._pdfHedgeReport = pdfHedgeReport;
this._pdfRefVolReport = pdfRefVolReport;
}
wenn der Code ausgeführt wird, wird die falsche Klasse zugegriffen wird, der bestimmte Zweig des Codes im Test verwendet werden soll diese Klasse
pdfHedgeReport
aber es ist eigentlich mit dieser ein pdfRefVolReport
dies ist die Code-Zeile das Problem verursacht
var result = await this._pdfHedgeReport.GenerateReportForEmail(hedgeRequest, reportTitle, reportDescription, rpt);
sein nicht wirklich pdfHedgereport Klasse das ist, zugegriffen wird, sein pdfRefVolReport
so bin ich diese die falsche Art und Weise mit Autofac Registrierung ??
das hat perfekt funktioniert, vielen Dank – proteus