Chcę odczytać tylko parametry połączenia z pliku konfiguracyjnego iw tym celu dodaj plik o nazwie „appsettings.json” do mojego projektu i dodaj do niego następującą zawartość:
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-
WebApplica71d622;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
Na ASP.NET użyłem tego:
var temp=ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
Teraz, jak mogę odczytać „DefaultConnection” w C # i zapisać go w zmiennej ciągu w .NET Core?
c#
connection-string
asp.net-core-1.0
motevalizadeh
źródło
źródło
Odpowiedzi:
Możesz to zrobić za pomocą metody rozszerzenia GetConnectionString:
lub z klasą strukturalną dla DI:
Uruchomienie:
A potem w kontrolerze domowym:
z tym w appsettings.json:
źródło
Configure
jest metodą rozszerzającą. Powinien być używany najczęściej w następujący sposób:services.Configure<SmtpConfig>(Configuration.GetSection("Smtp"));
Jasne, to prawie to samo, ale myślę, że ludzie nieświadomi zaczną po prostu robić to w „zły” sposób, używając niekomentowanej linii, więc być może najlepiej będzie usunąć tę linię. ;)Opublikowana odpowiedź jest w porządku, ale nie odpowiadała bezpośrednio na to samo pytanie, które miałem na temat odczytywania parametrów połączenia. Dzięki wielu poszukiwaniom znalazłem nieco prostszy sposób na zrobienie tego.
W Startup.cs
W swoim kontrolerze dodaj pole na konfigurację i parametr dla niej w konstruktorze
Teraz w kodzie widoku możesz uzyskać do niego dostęp na przykład:
źródło
Zobacz link, aby uzyskać więcej informacji: https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-strings
JSON
C # Startup.cs
EDYCJA: aspnetcore, począwszy od 3.1: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-3.1
źródło
ConnectionStrings
zamiastConnectionString
? Ponieważ kiedy użyłemConnectionString
, otrzymuję zero.Microsoft.Extensions.Configuration
(3.1.5)Sposób, w jaki znalazłem rozwiązanie tego problemu, polegał na użyciu AddJsonFile w programie budującym podczas uruchamiania (który pozwala mu znaleźć konfigurację przechowywaną w pliku appsettings.json), a następnie użyć tego do ustawienia prywatnej zmiennej _config
A potem mogłem ustawić ciąg konfiguracyjny w następujący sposób:
To jest w dotnet core 1.1
źródło
ASP.NET Core ( w moim przypadku 3.1 ) zapewnia nam iniekcje konstruktora do kontrolerów , więc możesz po prostu dodać następujący konstruktor:
Oto jak może wyglądać appsettings.json:
źródło
Jest inne podejście. W moim przykładzie widzisz logikę biznesową w klasie repozytorium, której używam z iniekcją zależności w ASP .NET MVC Core 3.1.
I tutaj chcę uzyskać
connectiongString
dla tej logiki biznesowej, ponieważ prawdopodobnie inne repozytorium będzie miało w ogóle dostęp do innej bazy danych.Ten wzorzec umożliwia w tym samym repozytorium logiki biznesowej dostęp do różnych baz danych.
DO#
appsettings.json
źródło
Mam bibliotekę dostępu do danych, która działa zarówno z .NET core i .NET Framework.
sztuczka polegała na zachowaniu parametrów połączenia w pliku xml o nazwie „app.config” (również w przypadku projektów internetowych) i oznaczeniu go jako „kopiuj do katalogu wyjściowego”,
ConfigurationManager.ConnectionStrings - odczyta parametry połączenia.
źródło
Możesz użyć metody rozszerzenia konfiguracji: getConnectionString ("DefaultConnection")
https://docs.asp.net/projects/api/en/latest/autoapi/Microsoft/Extensions/Configuration/ConfigurationExtensions/index.html#Microsoft.Extensions.Configuration.ConfigurationExtensions.GetConnectionString
źródło