2017-09-05 1 views
1

Ich habe eine Klassenbibliothek, die von einem ASP.Net Core (Targeting 4.5) und eine 4.5 Web App verwiesen wird, und ich möchte App-Einstellungen freigegeben haben. Ich verwende Unity für DI auf der 4.5 Seite und Core Bootstrapping auf der Core Seite. Auf der Core-Seite, melde ich mich eine Art meiner App-Einstellungen wie soVerwenden von IOptions mit Unity

services.Configure<AppSettings>(Configuration.GetSection("AppSettings")); 

ich dann AppSettings wie so

private readonly AppSettings _appSettings; 
public SubmissionRepository(PricingContext dbContext, IMapper mapper, IOptions<AppSettings> appSettings) 
{ 
    _appSettings = appSettings; 
} 

ich meine Dienste auf der 4,5-Seite registrieren wollen verweisen, konnte ich dies geschieht in WebApiConfig.cs mit Unity

container.RegisterType<AppSettings>(new InjectionFactory(o => BuildAppSettings())); 

wo BuildAppSettings nur eine Instanz dieses Typs auffüllt Configuration (nicht sicher, ob dies der richtige Weg ist, es zu tun)

Allerdings erhalte ich eine Ausnahme bei Runtime

Konnte nicht das Objekt des Typs '.Core.Integration.Models.AppSettings' eingeben ' Microsoft.Extensions.Options.IOptions`1 [Kern werfen. Integration.Models.AppSettings] '.

Ich vermute, ich muss IOptions-Instanz in meinen Container, aber nicht sicher, wie dies tun. Gibt es einen bevorzugten/besseren Weg, dies zu tun?

Antwort

1

Wenn ich für weitere 10 Sekunden haben gegoogelt würde, ich würde das

Options.Create(new AppSettings{ 
    // config reads 
}); 
gefunden haben
Verwandte Themen