2017-02-02 1 views
3

asp.net 핵심 라이브러리 프로젝트가 있습니다. 내가 그것에 연결 문자열을 추가하고 싶습니다. 나는 이것에 스타트 업 클래스가 없다. 어디에서 연결 문자열을 배치해야하며 가져 오는 방법은 무엇입니까?asp.net 핵심 라이브러리 프로젝트의 연결 문자열

좋습니다.

+0

에서 지적 DOTNET 코어에 대한 구성의

추가 형태는 user secrets, environment variables 아마도 XML 파일이나 저장의 다른 형태를 포함! 연결 문자열은 항상 응용 프로그램의 구성에 추가되며 결코 라이브러리에 추가되지 않습니다. 클래스 라이브러리에 비밀번호를 저장하는 것과 같을 것입니다. 아무도 라이브러리를 변경할 수 없으며 라이브러리를 가져 오는 모든 사람이 읽을 수 있습니다. – Tseng

답변

6

dotnet 코어에서 json 파일을 사용하여 구성을 관리 할 수 ​​있습니다. 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

편집 : 귀하의 게시물에 대한 주석 작성자가 언급 한대로 연결 문자열 및 설정 파일을 라이브러리 코드에 추가하지 마십시오. 콘솔 응용 프로그램이나 웹 응용 프로그램에서이 작업을 수행하십시오! 라이브러리에 연결 문자열을 추가하지 마십시오 의견

+0

이것은 완전히 사실이 아닙니다. 구성 시스템을 사용하면 여러 위치에 설정을 입력 할 수 있습니다. JSON 파일, XML 파일, 환경 변수, 사용자 비밀 .. – juunas

+1

@ 주니어 당신은 절대적으로 옳습니다. 지적 해 주셔서 고맙습니다. 나는이 문제에 관해 더 명확 해지기 위해 그 지위를 갱신했다. – nover