Ich möchte nur eine Verbindungszeichenfolge aus einer Konfigurationsdatei lesen und dazu eine Datei mit dem Namen "appsettings.json" zu meinem Projekt hinzufügen und diesen Inhalt hinzufügen:
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-
WebApplica71d622;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
Unter ASP.NET habe ich Folgendes verwendet:
var temp=ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
Wie kann ich nun "DefaultConnection" in C # lesen und in einer Zeichenfolgenvariablen in .NET Core speichern?
c#
connection-string
asp.net-core-1.0
Motevalizadeh
quelle
quelle
Antworten:
Sie können dies mit der GetConnectionString-Erweiterungsmethode tun:
oder mit einer strukturierten Klasse für DI:
Anfang:
Und dann im Home-Controller:
mit diesem in appsettings.json:
quelle
Configure
ist eine Erweiterungsmethode. Es sollte am häufigsten so verwendet werden:services.Configure<SmtpConfig>(Configuration.GetSection("Smtp"));
Sicher, es ist fast dasselbe, aber ich denke, Leute, die sich nicht bewusst sind, werden es einfach "falsch" machen, indem sie die unkommentierte Linie verwenden, also vielleicht am besten, um die Linie zu entfernen. ;)Die gepostete Antwort ist in Ordnung, hat aber nicht direkt die gleiche Frage beantwortet, die ich zum Lesen einer Verbindungszeichenfolge hatte. Durch viel Suchen fand ich einen etwas einfacheren Weg, dies zu tun.
In Startup.cs
Fügen Sie in Ihrem Controller ein Feld für die Konfiguration und einen Parameter dafür in einem Konstruktor hinzu
Jetzt später in Ihrem Ansichtscode können Sie wie folgt darauf zugreifen:
quelle
Weitere Informationen finden Sie unter dem Link: https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-strings
JSON
C # Startup.cs
BEARBEITEN: aspnetcore, ab 3.1: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-3.1
quelle
ConnectionStrings
statt habenConnectionString
? Denn wenn ich verwendet habeConnectionString
, dann bekomme ich null.Microsoft.Extensions.Configuration
(3.1.5)Um dies zu beheben, habe ich AddJsonFile in einem Builder beim Start verwendet (wodurch die in der Datei appsettings.json gespeicherte Konfiguration gefunden werden kann) und anschließend eine private Variable _config festgelegt
Und dann könnte ich die Konfigurationszeichenfolge wie folgt einstellen:
Dies ist auf Dotnet Core 1.1
quelle
ASP.NET Core ( in meinem Fall 3.1 ) bietet uns Konstruktorinjektionen in Controller , sodass Sie einfach den folgenden Konstruktor hinzufügen können:
So könnte appsettings.json aussehen:
quelle
Es gibt einen anderen Ansatz. In meinem Beispiel sehen Sie eine Geschäftslogik in der Repository-Klasse, die ich mit der Abhängigkeitsinjektion in ASP .NET MVC Core 3.1 verwende.
Und hier möchte ich
connectiongString
auf diese Geschäftslogik eingehen, da wahrscheinlich ein anderes Repository überhaupt Zugriff auf eine andere Datenbank hat.Mit diesem Muster haben Sie im selben Geschäftslogik-Repository Zugriff auf verschiedene Datenbanken.
C #
appsettings.json
quelle
Ich habe eine Datenzugriffsbibliothek, die sowohl mit .net Core als auch .net Framework funktioniert.
In .net-Kernprojekten bestand der Trick darin, die Verbindungszeichenfolgen in einer XML-Datei mit dem Namen "app.config" (auch für Webprojekte) zu speichern und als "In Ausgabeverzeichnis kopieren" zu markieren.
ConfigurationManager.ConnectionStrings - liest die Verbindungszeichenfolge.
quelle
Sie können die Konfigurationserweiterungsmethode verwenden: getConnectionString ("DefaultConnection")
https://docs.asp.net/projects/api/en/latest/autoapi/Microsoft/Extensions/Configuration/ConfigurationExtensions/index.html#Microsoft.Extensions.Configuration.ConfigurationExtensions.GetConnectionString
quelle