私はasp.netコアライブラリプロジェクトを持っています。私はそれに接続文字列を追加したい。私はスタートアップクラスを持っていません。どこに接続文字列を配置する必要があり、どのようにそれを取得するのですか?asp.netコアライブラリプロジェクトの接続文字列
お勧めします。
私はasp.netコアライブラリプロジェクトを持っています。私はそれに接続文字列を追加したい。私はスタートアップクラスを持っていません。どこに接続文字列を配置する必要があり、どのようにそれを取得するのですか?asp.netコアライブラリプロジェクトの接続文字列
お勧めします。
dotnetコアでは、アプリケーションを構成する多くの方法の1つであるjsonファイルを使用して構成を管理できます。
あなたは、単に行うことができますdotnet core configuration documentationによると
using Microsoft.Extensions.Configuration;
using System;
using System.IO;
// Add NuGet <package id="Microsoft.Extensions.Configuration" and
// <package id="Microsoft.Extensions.Configuration.Json"
// .NET Framework 4.x use the following path:
//.SetBasePath(Path.Combine(Directory.GetCurrentDirectory(), @"..\.."))
public class Program
{
static public IConfigurationRoot Configuration { get; set; }
public static void Main(string[] args = null)
{
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json");
Configuration = builder.Build();
Console.WriteLine($"option1 = {Configuration["option1"]}");
Console.WriteLine($"option2 = {Configuration["option2"]}");
Console.WriteLine(
$"option1 = {Configuration["subsection:suboption1"]}");
}
}
次に、あなたのappsettings.json
ファイルにあなたが追加することができます(リンク参照からコピー):
{
"ConnectionStrings": {
"BloggingDatabase": "Server=(localdb)\\mssqllocaldb;Database=EFGetStarted.ConsoleApp.NewDb;Trusted_Connection=True;"
},
}
を、コードでアクセスそれを使用してConfiguration.GetConnectionString("BloggingDatabase")
私も読むことができますdotnet core documentation regarding connection strings
編集:投稿者のコメントにコメントが記載されているので、ライブラリコードに接続文字列と設定ファイルを追加しないでください。これをコンソールアプリケーションまたはWebアプリケーションから実行してください。ライブラリに接続文字列を追加しないでくださいコメント
で指摘したようにDOTNETコアのコンフィギュレーションの
追加のフォームは、user secrets、environment variablesおそらくXMLファイルやストレージの他の形態を含む!!!接続文字列は常にアプリケーションの構成に追加され、ライブラリには追加されません。それは、クラスライブラリにパスワードを保存するようなものです。誰もそれを変更することはできませんし、ライブラリを入手した人は誰でもそれを読むことができます... – Tseng