저는 C# 웹 프로젝트에서 사용하고있는 F # 라이브러리 프로젝트를 가지고 있습니다. Entity Framework Type Provider를 F # 프로젝트에 사용하고 Web.config
에서 연결 문자열을 가져오고 싶습니다. 그러나이 작업을 수행하는 데 문제가 있습니다.Entity Framework 유형 공급자가 런타임 구성 파일을 사용하도록하려면 어떻게합니까?
type internal FooDb =
SqlEntityConnection<ConnectionStringName="FooDb", Pluralize=true>
는 디자인 타임에, 나는 일치하는 이름을 갖는 연결 문자열을 사용하여 F # 라이브러리 프로젝트에 App.config
파일이 필요 해요.
런타임에 C# 웹 프로젝트에서 내 F # 코드를 호출 할 때 "App.config"파일을 찾을 수 없다는 오류가 발생합니다. 이것은 놀랍습니다. 런타임시에 현재 활성화 된 구성 파일 (웹 응용 프로그램의 경우 Web.config
)에서 연결 문자열을로드하는 데 단지 ConfigurationManager.ConnectionStrings
을 사용하기를 기대했기 때문입니다. 그러나 이것이 사실 인 것처럼 보이지는 않습니다.
ConfigFile
매개 변수를 추가하는 시도 :
type internal FooDb =
SqlEntityConnection<ConnectionStringName="FooDb", ConfigFile="Web.config", Pluralize=true>
을하지만 이것은 단지 그것이 Web.config
을 찾을 수 없다는 디자인 타임에 불평했다.
그럼 F # 라이브러리 프로젝트의 App.config
파일의 이름을 Web.config
으로 바꿨습니다. 그러나 나는이 해결책에 대해 불안하다. 이게 실제로 작동하는 방법인가요? 내 라이브러리 프로젝트에 web.config 파일이 있어야합니까? 명령 줄 실행 파일에서 동일한 라이브러리를 사용하려면 어떻게해야합니까? 그 환경에서 구성 파일의 이름은 AssemblyName.exe.config
입니까?
다른 컨텍스트에서 다른 이름을 가질 수있는 구성 파일의 이름을 하드 코딩하도록 강요하는 것은 매우 취약하며 디자인이 좋지 않습니다. 내가 뭔가 빠졌다고 말해줘.