Je veux lire juste une chaîne de connexion à partir d'un fichier de configuration et pour cela ajouter un fichier avec le nom "appsettings.json" à mon projet et y ajouter ce contenu:
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-
WebApplica71d622;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
Sur ASP.NET, j'ai utilisé ceci:
var temp=ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
Maintenant, comment puis-je lire "DefaultConnection" en C # et le stocker sur une variable de chaîne dans .NET Core?
c#
connection-string
asp.net-core-1.0
motevalizadeh
la source
la source
Réponses:
Vous pouvez le faire avec la méthode d'extension GetConnectionString:
ou avec une classe structurée pour DI:
Commencez:
Et puis dans le home-controller:
avec ceci dans appsettings.json:
la source
Configure
est une méthode d'extension. Il devrait être utilisé le plus souvent comme ceci:services.Configure<SmtpConfig>(Configuration.GetSection("Smtp"));
Bien sûr, c'est à peu près la même chose, mais je pense que les gens qui ne sont pas au courant commenceront simplement à le faire de la "mauvaise" façon, en utilisant la ligne non commentée, alors peut-être mieux de supprimer la ligne. ;)La réponse publiée est correcte mais n'a pas répondu directement à la même question que j'avais sur la lecture dans une chaîne de connexion. Grâce à de nombreuses recherches, j'ai trouvé un moyen un peu plus simple de le faire.
Dans Startup.cs
Dans votre contrôleur, ajoutez un champ pour la configuration et un paramètre pour celle-ci sur un constructeur
Maintenant, plus tard dans votre code de vue, vous pouvez y accéder comme:
la source
Voir le lien pour plus d'informations: https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-strings
JSON
C # Startup.cs
EDIT: aspnetcore, à partir de 3.1: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-3.1
la source
ConnectionStrings
au lieu deConnectionString
? Parce que quand j'ai utiliséConnectionString
, alors nous devenons nul.Microsoft.Extensions.Configuration
(3.1.5)La façon dont j'ai trouvé pour résoudre ce problème était d'utiliser AddJsonFile dans un constructeur au démarrage (ce qui lui permet de trouver la configuration stockée dans le fichier appsettings.json), puis de l'utiliser pour définir une variable _config privée
Et puis je pourrais définir la chaîne de configuration comme suit:
C'est sur dotnet core 1.1
la source
ASP.NET Core ( dans mon cas 3.1 ) nous fournit des injections de constructeur dans les contrôleurs , vous pouvez donc simplement ajouter le constructeur suivant:
Voici à quoi peut ressembler appsettings.json:
la source
Il existe une autre approche. Dans mon exemple, vous voyez une logique métier dans la classe de référentiel que j'utilise avec l'injection de dépendances dans ASP .NET MVC Core 3.1.
Et ici, je veux obtenir
connectiongString
cette logique métier car un autre référentiel aura probablement accès à une autre base de données.Ce modèle vous permet, dans le même référentiel de logique métier, d'accéder à différentes bases de données.
C #
appsettings.json
la source
J'ai une bibliothèque d'accès aux données qui fonctionne à la fois avec .net core et .net framework.
l'astuce était dans les projets principaux .net de conserver les chaînes de connexion dans un fichier xml nommé "app.config" (également pour les projets Web), et de le marquer comme "copier dans le répertoire de sortie",
ConfigurationManager.ConnectionStrings - lira la chaîne de connexion.
la source
Vous pouvez utiliser la méthode d'extension de configuration: getConnectionString ("DefaultConnection")
https://docs.asp.net/projects/api/en/latest/autoapi/Microsoft/Extensions/Configuration/ConfigurationExtensions/index.html#Microsoft.Extensions.Configuration.ConfigurationExtensions.GetConnectionString
la source