2016-09-07 2 views
-2

응용 프로그램의 UI 쪽을 새 ASP.NET 코어 MVC 구조로 이동하는 중입니다. 불행히도 이전 세대 ASP.NET 프레임 워크에 구축 된 데이터 계층을 참조해야합니다. 이 데이터 .dll은 다양한 데이터베이스에 대한 적절한 연결 문자열을 모두 가지고 있으며 데이터를 실제로 얻으려면 UI 레이어에서 모방해야하는 ConfigurationManager.ConnectionStrings["ConnectionStringName"].ConnectionString이 관리합니다.별도의 데이터가있는 ASP.NET 코어 UI 응용 프로그램

이제 ASP.NET 코어 MVC에서는 web.config 구성이 appsettings.json 파일로 대체되었습니다.

UI 응용 프로그램에서 연결 문자열을 더 이상 복제 할 수 없으므로 패러다임 전환으로 데이터에 대한 모든 액세스가 중단됩니다.

"포함하는"응용 프로그램에 메서드를 노출하면서이 데이터 계층 .dll을 자체적으로 자체적으로 포함하고 내부적으로 정의 된 연결 문자열에 의존하는 적절한 솔루션이 있습니까?이 경우 , UI 레이어?

답변

0

, 그것은 지금 할 것입니다. 궁극적으로, 나는 더 나은 옵션을 찾고 싶지만 앞으로 나아가고있어 내 상사를 행복하게 해줍니다.

코어 MVC 로의 변환으로 인해 더 이상 호출 프로젝트에없는 연결 문자열을 나타내는 문자열 값을 받아들이도록 메소드 서명을 변경했습니다.

.dll에서 이제 코드는 전달 된 매개 변수에 값이 있는지 확인한 다음 전달 된 값을 사용하여 SqlConnection을 초기화합니다. 매개 변수가 제공되지 않으면 ConfigurationManager 기능을 사용하여 web.config의 구성 섹션을 찾습니다.

이렇게하면 기존 프로젝트에서 코드뿐만 아니라 새로운 핵심 MVC 프로젝트를 사용할 수 있습니다. 약간의 kludgy이지만 기능적입니다.

1

사실 새 .json 파일의 연결 문자열에 대한 참조가 있습니다.

여기
var builder = new ConfigurationBuilder(); 
builder.AddInMemoryCollection(); 
var config = builder.Build(); 
config["somekey"] = "somevalue"; 

// do some other work 

var setting = config["somekey"]; // also returns "somevalue" 

이 링크입니다 : 당신은 무언가 같이 할 것입니다 내가 해결 방법 내 문제를 해결 한 docs.asp.net

+0

예, 문서에서이를 보았습니다. 이전 구문과 새 구문 사이에 "자동"번역이 있기를 기대합니다. 불행히도 이러한 행운은 없습니다. 데이터 레이어 .dll은 이전 ConfigurationManager와 관련된 항목을 계속 찾고있었습니다. – rcastagna

+0

.dll의 소스 코드에 액세스 할 수 있습니까? 제 생각에는 .dll 프로젝트에 app.config 파일이 있어야합니다. 그래서 다른 프로젝트에서 사용하면 구성 파일에서 동일한 설정을 찾습니다. 따라서 새 프로젝트가 설정에 구성 파일을 사용하지 않는다면 구성 파일 (app.config 또는 web.config)을 추가 할 수 없다는 것을 의미하지는 않습니다. dll. 시도해보십시오 ... 결과를 알려주십시오. –

관련 문제