C# 3

[C#] 어느날 갑자기 Smtp 메일 전송이 안된다

오피스365 Exchange 계정을 통해 C# 으로 .Net SmtpClient 클래스를 통해 메일을 보내는 기능을 구현해서 1년 넘게 잘 쓰고 있다가, 최근에 점점 실패 횟수가 잦더니 이제는 아예 기능 자체가 먹통이 되어 버렸다. 원인은 .Net 의 SmtpClient 라이브러리가 deprecated 된 탓이고, 자세한 이유는 최근의 여러 보안 프로토콜(가령 StartTLS)을 지원하지 못한 탓이란다. We don't recommend that you use the SmtpClient class for new development because SmtpClient doesn't support many modern protocols. Use MailKit or other libraries instead...

C# 2022.02.11

[C#] 한글의 받침 유무 가려내기

// 한글 받침 유무 체크 bool isExistLastSyllable(char ch) { int n = Convert.ToInt32(ch); // 한글의 제일 처음과 끝의 범위밖일 경우는 예외처리 if (n 0xD7A3) { throw new Exception("한글이 아님"); } if((n - 0xAC00) % 28 > 0) { return true; } else { return false; } } char ch = '손'; try { bool bExist = isExistLastSyllable(ch); Console.WriteLine($"{ch}{(bExist ? "은":"는")} 받침이 {(bExist?"있다":"없다")}"); } catch(Exception ex)..

C# 2021.11.02

정규식을 이용한 소스 Replace

레퍼런스가 존재하지 않는 C# DLL 을 디컴파일 하면 프로퍼티들이 get_XXX, set_XXX 형식으로 디컴파일 됨. 일일이 수작업으로 하려면 너무 무의미한 시간이 필요함. 그래서 정규식을 사용하면 순식간. 정규식 규칙상 괄호 ( ) 로 묶으면 그룹 1 번이 되고, replace 에서 $1 로 표현. - "get_XXX()" => "XXX" 찾을 문구 : get_([A-Za-z0-9]*)\(\) 바꿀 문구 : $1 - "set_XXX" => "XXX = " set_([a-zA-Z0-9]*)\( $1 = ( - 이벤트 핸들러 add_([A-Za-z0-9]*)\( $1 += ( \(object\)this, __methodptr\(([A-Za-z0-9_]*)\) $1

C# 2020.02.21