일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- string
- 코딩테스트
- Visual Studio
- convert
- commit
- Github
- ListView
- Process
- algorithm
- Binding
- nullable
- C#
- windows10
- Coding
- .net
- tls
- programmers
- mysql
- chashtag
- WPF
- git
- csharp
- File
- IValueConverter
- log
- dotNET
- coding-test
- windows
- Microsoft
- logging
- Today
- Total
목록C# (73)
CHashtag

제품을 릴리스하여 출시할 때 exe와 동일한 경로에 수많은 .dll 파일들이 위치해 있는 경우가 많습니다. 이럴 경우 매우 복잡하고 지저분해보일 수 있기 때문에 오늘은 이 .dll 파일들을 폴더로 분리해보려 합니다. 테스트 구성은 다음과 같습니다. 빌드를 하면 다음과 같이 지저분한 dll들이 보입니다. 이제 이 dll들을 폴더를 나누어 관리해보려 합니다. (참고로 pdb 파일들은 지워도 됩니다.) app.config에 다음과 같은 코드를 추가해주면 됩니다. 여기서 주의할 점은 privatePath는 exe하위 폴더여야 합니다. 여러 폴더를 지정하고 싶다면 ; 으로 나눠주면 됩니다. (공백이 생겨선 안됩니다.) 사실 app.config를 변경하고 빌드하지 않고 SomeAmazingWPFProgram.exe..
결론부터 말씀드리겠습니다. 필자의 경우 Web.config에 다음 코드를 추가하여 해결하였습니다. Nancy 라이브러리를 이용하여 ASP 웹 페이지를 제작하다 보면 cshtml에서 외부 라이브러리를 찾지 못하는 오류가 발생하곤 합니다. @using Your.Namespace.etc [CS0234] Line: 0 Column: 0 - 'Your.Namespace.etc' 네임스페이스에 'SomeClass' 형식 또는 네임스페이스 이름이 없습니다. 어셈블리 참조가 있는지 확인하십시오. 하지만 프로젝트의 References에는 잘 추가가 되어 있다면 다음 Web.config를 수정하여야 합니다. ※ Razor 속성의 위치는 configuration 바로 아래에 있어야 합니다. ※ razor section을 추..

기본적으로 .net framework 4.0에서는 tls 1.2가 지원되지 않아 https요청을 보내면 "기본 연결이 닫혔습니다 보내기에서 예기치 않은 오류가 발생했습니다." 라는 에러가 발생합니다. 이때 .net framework 버전을 4.5.2로 올려도 되지만 버전을 올릴 수 없을 경우 해결방법을 알려드리도록 하겠습니다. 아래의 함수를 선언한 뒤 프로그램이 시작 시 한번 호출해주면 해결됩니다. public void SetTls() { bool platformSupportsTls12 = false; foreach (SecurityProtocolType protocol in Enum.GetValues(typeof(SecurityProtocolType))) { if (protocol.GetHashCode..

안녕하세요. 오늘은 C# 프로젝트를 빌드하면, 함께 나오는 pdb파일에 대해 알아볼까 합니다. PDB파일이란? .pdb파일은 Program DataBase의 약자입니다. C#프로젝트를 빌드하면, exe 혹은 dll파일과 함께 pdb파일도 함께 나오는 것을 종종 확인하셨을 것입니다. pdb파일은 프로그램을 디버깅할 때 필요한 파일입니다. pdb파일 속에는 디버깅에 필요한 정보들이 포함되어 있습니다. 이 말을 뒤집으면 프로그램을 배포할 때에는 pdb파일이 있어선 안 되겠죠. 그래서 혹시 배포 패키지에 pdb파일이 섞여 들어가는 것을 막기 위해 빌드 옵션을 설정할 수가 있습니다. 그럼 지금부터 pdb파일을 나오게 하는 법, 안 나오게 하는법에 대해 알아보도록 하겠습니다. PDB파일 안나오게 하는 법 1. 프로..

안녕하세요. 오늘은 C#개발을 할 때에 지켜야 할 규칙에 대해 알려드리려 합니다. 오늘 알려드릴 내용은 "권장사항" 입니다. 아래 코딩 규칙이 회사, 팀에서 사용하고 코딩 규칙과 다르다면 따르지 않는것을 추천합니다. 코딩 규칙이 존재하는 이유는 여러 사람이 일관성있는 코드를 작성할 수 있게 돕고, 그로인해 코드 가독성을 높이기 위함임을 꼭 기억하기시 바랍니다. 일관성 있는 코드 작성 -> 가독성 올라감 -> 코드 리딩 및 이해가 빠름 -> 개발시간 단축 및 리팩토링 용이 (아래 몇몇 규칙중에서는 성능을 높여주는 규칙도 포함되어 있습니다.) 오늘 게시글은 마이크로소프트 공식 문서를 참고하여 예제를 추가한 것입니다. 관련해 더 자세하고 정확한 내용은 원문을 참고해주시기 바랍니다. (docs.microsoft..

WPF 프로그래밍을 하다 보면 Control을 적절히 분리하여 다른 Control들을 배치하여야 합니다. 이때 자주 사용하는 Control이 Grid입니다. 하지만 분리할 때에 단순히 Width, Height, Margin, Padding만을 사용한다면 안됩니다. 프로그램의 크기가 달라졌을 때나 변경사항이 생길 때 구조가 잡혀있지 않다면 굉장히 난감해지기 때문입니다. (이 때문에 저는 ToolBox에서 Control들을 직접 Drag&Drop하여 Control들을 배치하지 않습니다.) 한 가지 예를 들어보겠습니다. 다음과 같은 프로그램이 있습니다. 해당 프로그램의 디자이너 코드는 다음과 같습니다. . 이때 이 Window의 크기를 변경하거나 사용자가 임의로 크기를 변경하였을 때 아래 사진처럼 구조가 틀어..

안녕하세요. 오늘은 WPF MVVM패턴에서 TextBox에서 특정 버튼을 눌렀을 때 ViewModel의 함수로 연결하는 방법에 대해 알아보도록 하겠습니다. 우선 View입니다. 여기서 중요하게 보여야 할 부분은 두 가지입니다. 우선 첫 번째는 아래 코드입니다. Text="{Binding Id, UpdateSourceTrigger=PropertyChanged}" UpdateSourceTrigger의 자세한 설명은 chashtag.tistory.com/1 를 참고하시면 됩니다. (간략하게 설명드리자면 UpdateSourceTrigger=PropertyChanged가 없으면 엔터를 눌렀을 때 텍스트가 비어있는 것처럼 보이게 됩니다.) 두 번째는 아래 코드입니다. KeyBinding은 특정 키가 눌렸을 때 Co..

안녕하세요. 오늘은 string을 enum으로 변환할 때, 대소문자 구분 없이 string을 enum으로 변환하는 방법에 대해 알아보도록 하겠습니다. 방법은 간단합니다. Enum.Parse의 인자 중 세 번째 인자인 ignoreCase를 사용하면 됩니다. (해당 인자를 사용하지 않으면 ArgumentException이 발생합니다.) enum Alphabet { A, B, C } class Program { public void Main() { Alphabet alphabet1 = (Alphabet)Enum.Parse(typeof(Alphabet), "a", true); // alphabet1 = Alphabet.A Alphabet alphabet2 = (Alphabet)Enum.Parse(typeof(A..

안녕하세요. 오늘은 enum 을 string으로 변환하거나, string, int를 enum로 변환하는 방법에 대해 알아보도록 하겠습니다. enum -> string enum Alphabet { A = 0, B = 1, C = 2, D = 3 } string EnumToString(Alphabet alphabet) { return alphabet.ToString(); } void Main() { Console.WriteLine(EnumToString(Alphabet.A)); // output : A } enum -> int enum Alphabet { A = 0, B = 1, C = 2, D = 3 } int EnumToInt(Alphabet alphabet) { return (int)alphabet; ..

안녕하세요. 오늘은 파일을 점유하되(Write), 다른 프로세스가 해당 파일을 읽을(Read) 수 있는 방법에 대해 알아보도록 하겠습니다. File.Open File.Open 함수는 최대 4개의 인자(Parameter)를 받도록 되어있습니다. 우선 인자에 대해 간략하게 설명해드리고, 해당 인자들을 혼합하여 파일을 여는 방법에 대하여 설명해 드리겠습니다. Arguments path 말 그대로 Open 할 파일의 경로입니다. fileMode Path의 파일을 가지고 할 행동을 나타냅니다. FileMode enum은 아래와 같습니다. [관련 링크] CreateNew 파일을 새로 만들지만, 이미 있으면 에러가 납니다. Create path에 파일을 새로 만들고, 해당 경로에 파일이 이미 존재한다면 덮어 씌웁니다..