즐겁게 개발을...

개발보다 게임이 더 많이 올라오는 것 같은...

개발/C# 37

[2022.02] MSMQ를 이용해 프로세스 간 메시지 송/수신 처리하기

안녕하세요! 오랜만에 글을 작성해봅니다. 올해 처음인가봐요 ㅡㅡ; (다행히 아닙니다. ㅎㅎ) MSMQ는 윈도우 OS에서 제공하는 Microsoft Message Queue 입니다. 이를 사용하기 위해서는 제어판 > 윈도우 기능 켜기/끄기에서 활성화 해주셔야 합니다. 본 글에서 테스트 한 메시지 형태는 클래스 형태로 만들어 상호 교환되는 것을 확인하는 소스입니다. XML방식을 직렬화 및 역직렬화를 하는데 속도가 느리다는 글이 있네요. 그래서 아래 참조 글 중 JSON방식의 포맷터를 사용한 테스트 코드를 올려봅니다. 다음 두 개의 클래스를 추가합니다. public class Order { public long orderId; public DateTime orderTime; }; public class EnD..

개발/C# 2022.02.22

[2021.09] fo-DICOM Log4Net 사용방법

안녕하세요. 제가 의료기기 쪽 IT 솔루션을 개발하다보니 fo-DICOM이라는 라이브러리를 사용하는데 Logger연동이 쉽지 않아서 작성해봅니다. 2016년 이슈가 떴으면 제대로 문서화를 해놓을 것이지 공식 홈페이지에는 존재하지 않는 방법입니다. 보통 Log4Net Config 파일은 Properties/AssemblyInfo.cs 맨 끝에 넣는 것이 일반적인데, fo-DICOM의 Log4Net 인터페이스가 그것을 인지하지 못하는 버그(이슈)가 있습니다. 그래서 다음 코드를 프로젝트 Root에 있는 App.Config파일에 추가합니다. 그리고 Program.cs 도입부분에 다음 코드를 추가합니다. Dicom.Log.LogManager.SetImplementation(Dicom.Log.Log4NetMana..

개발/C# 2021.09.06

[2021.09] 입력문자가 어떤 언어인지 분별해주는 함수

안녕하세요! 입력된 문자가 어느나라 문자인지 판별하는 함수를 소개합니다. // OneByteChar = 영어 public enum LanguageType { Korean, KoreanJaum, KoreanMoum, Japanese, Chinese, OneByteChar, UnKnown, OverBound } 이렇게 상수 선언합니다. public LanguageType GetLanguageType(string sourceString) { if (sourceString.Length > 2) return LanguageType.OverBound; byte[] _tmp = System.Text.Encoding.Default.GetBytes(sourceString); if (_tmp.Length != 2) ret..

개발/C# 2021.09.04

[2021.06] C#에서 Cross-Thread Operation not valid 오류

안녕하세요. 공통모듈을 보통 DLL로 만들어서 호출하는데 이벤트를 발생시켜 DLL을 사용하는 클래스에서 클래스내 컴포넌트나 다른 클래스에 값을 변경하고자 할 때 이런 오류가 가끔(자주가 아니라 더 잡기 힘드나, 그나마 쉬운) 발생하는데 그것을 해결할 방법입니다. 마소 사이트 참조: https://docs.microsoft.com/ko-kr/dotnet/desktop/winforms/controls/how-to-make-thread-safe-calls-to-windows-forms-controls?view=netframeworkdesktop-4.8 스레드로부터 안전한 컨트롤 호출 - Windows Forms .NET Framework 스레드로부터 안전한 방식으로 크로스 스레드 컨트롤을 호출 하 여 앱에서 ..

개발/C# 2021.06.09
1 ··· 3 4 5 6 7 8