In einigen IoC-Containern können Argumente im Konstruktor vorhanden sein, die vom Container nicht erfüllt werden können. Ist dies mit den Bibliotheken Microsoft.Extensions.DependencyInjection
und IServiceProvider
möglich? Wenn nicht, was ist eine saubere Lösung für diese Art von Problem?Optionale Konstruktorinjektionsargumente mit .NET Core
Zum Beispiel:
class InContainer
{
public InContainer(NotInContainer dependency) { ... }
}
class Consumer
{
public Consumer(IServiceProvider serviceProvider)
{
NotInContainer currentDependency = ... // from some other source
// passing the anonymous object here is not supported,
// but I would like to
InContainer = serviceProvider.GetService<InContainer>(
new { dependency = currentDependency }
);
}
}
Meinst du während der Registrierung oder pro Instanz? –