반응형
환영합니다, Rolling Ress의 카루입니다.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="ChatDB" connectionString="**"/>
</connectionStrings>
</configuration>
보통 앱을 개발할 때, SQL 등의 connectionString은 app.config 에 넣어두죠. 그리고 C# 에서는 ConfigurationManager을 이용해 불러들입니다.
그게 이상처럼만 잘 된다면 얼마나 좋을까요. 계속 오류가 났습니다. 보아하니 UWP 플랫폼에서는 특유의 폐쇄성으로 인해 ConfigurationManager가 제대로 동작하지 않는다는 모양이에요. File 클래스도 사용하지 못해서 Windows.Storage의 클래스들을 사용해야만 하는데, 여러모로 불편합니다.
그래서 stackoverflow를 뒤져봤더니 소스컨트롤에 포함되지 않는 파일을 만들어서 읽는 방식을 사용하더군요.
그래서 저도 해봤습니다. connection.txt 파일을 만들고 .gitignore에 추가해주세요. 그럼 commit시 반영되지 않습니다.
var connectiontxt = await StorageFile.GetFileFromApplicationUriAsync(new("ms-appx:///connection.txt"));
string? connectionString = await FileIO.ReadTextAsync(connectiontxt);
if (connectionString == null)
throw new NullReferenceException("ConnectionString is null.");
this.connectionString = connectionString;
참고로 C# 9 이상에서만 동작합니다. 그 이하의 환경에서는 new 뒤에 Uri를 명시해주세요. 아무튼, 이런 식으로 간단하게 사용할 수 있습니다.
추가로, Resources를 사용하는 방법이 있습니다. 아예 리소스로 넣어버리는 건데, https://amadeusw.com/iot/custom-resource-files-in-uwp-windows-10 를 참고하시면 이해가 빠를 것 같네요.
반응형
'C# & .NET' 카테고리의 다른 글
[C# 10.0] C#의 편리한 구문들 모음 (Syntax Sugar) (0) | 2022.02.23 |
---|---|
[C# UWP] UWP에서 설정값 저장하고 불러오기 (0) | 2022.02.23 |
[C# ML] C#으로 머신러닝 모델 구축하기 (ML.NET) (5) | 2022.02.20 |
[CS1545] GGHS Todo V1.5A, 오류와의 싸움 (0) | 2021.10.17 |
C# 9.0: switch의 기능, 이젠 이런 것까지? (0) | 2021.05.14 |