2017-02-02 8 views
3

私はasp.netコアライブラリプロジェクトを持っています。私はそれに接続文字列を追加したい。私はスタートアップクラスを持っていません。どこに接続文字列を配置する必要があり、どのようにそれを取得するのですか?asp.netコアライブラリプロジェクトの接続文字列

お勧めします。

+0

で指摘したようにDOTNETコアのコンフィギュレーションの

追加のフォームは、user secretsenvironment variablesおそらくXMLファイルやストレージの他の形態を含む!!!接続文字列は常にアプリケーションの構成に追加され、ライブラリには追加されません。それは、クラスライブラリにパスワードを保存するようなものです。誰もそれを変更することはできませんし、ライブラリを入手した人は誰でもそれを読むことができます... – Tseng

答えて

6

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アプリケーションから実行してください。ライブラリに接続文字列を追加しないでくださいコメント

+0

これは完全に真実ではありません。設定システムにより、さまざまな場所に設定を入れることができます。 JSONファイル、XMLファイル、環境変数、ユーザーの秘密.. – juunas

+1

@juunasあなたは絶対に正しいです、それを指摘していただきありがとうございます。私はこの問題についてより明確になるように投稿を更新しました。 – nover