Vielen Dank, dass Sie sich die Zeit genommen haben, meine Frage zu prüfen.
Ich habe eine Datenzugriffsebene zwischen meiner ASP.NET Core 3.1-Web-App und meiner.NET Core 3.1 Windows Forms-Back-End-App über ein Klassenbibliotheksmuster freigegeben.
Dies hat gut funktioniert, bis ich mich entschied, die einzufügende Datenzugriffsschicht mithilfe der Abhängigkeitsinjektion zu ändern.
Ich habe die Windows Forms-App erfolgreich für die Verwendung der Abhängigkeitsinjektion eingerichtet, diese Version von Windows Forms verwendet jedoch keine Instanz appsettings.json
und verwendet daher keine IConfiguration
Instanz, um die Verbindungszeichenfolge zu übergeben. Stattdessen greife ich Settings.settings
wie folgt auf die Verbindungszeichenfolge in den Lösungsabhängigkeiten zu:
Properties.Settings.Default.MyConnectionString
Ich habe versucht, ein IConfiguration
Objekt zum Lesen zu erstellen, Properties.Settings.Default
aber ich kann anscheinend keine Methode finden, um einen zu füllenden Abschnitt zu instanziieren IConfigurationSection
, ConnectionStrings
damit IConfiguration
die
GetConnectionString("MyConnectionString")
Anruf funktioniert.
Meine Frage lautet also: Kann ich die Windows Forms.NET Core-App für die Verwendung neu konfigurieren AppSettings.json
? Oder gibt es eine Möglichkeit, eine Instanz zu erstellen IConfiguration
, die mit gefüllt werden kann Properties.Settings.Default.MyConnectionString
? Oder gibt es einen viel besseren Weg, mit dieser Situation umzugehen, an den ich nicht gedacht habe?
Jede Hilfe ist im Moment eine gute Hilfe.
Lösung des Problems
Am Ende stieß ich auf den Beitrag Unable to resolve service for type Microsoft Extensions Configuration IConfiguration, und kopierte dann einfach das appsettings.json
Over von meiner ASP.NET-App und alles funktioniert.
Alles, was ich tun musste, war .SetBasePath(@"mypath")
, einige Dinge hinzuzufügen und zu entfernen, die für mein Projekt nicht zutrafen. Hier ist der Code, der am Ende den Trick gemacht hat:
var builder = new ConfigurationBuilder()
.SetBasePath(@"mypath").AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
IConfiguration configuration = builder.Build();
services.AddSingleton<IConfiguration>(configuration);`
Keine Kommentare:
Kommentar veröffentlichen