본문 바로가기

개발언어/.NET41

byte UTF8Encoding시 OOM(OutOfMemory) 오류 발생 서버로부터 수신받은 byte array 데이터를 UTF8로 encoding시 간헐적으로 OOM(OutOfMemory)가 발생한다. 조회성 데이터는 상관없지만 3rd Party 업체로부터 수신받은 응답 데이터에서 저런 경우가 발생할 경우 무척 난감해지는 상황이 발생한다. 대부분 byte array를 string 으로 변환하는 코드는 아래코드가 대부분이다. string sBuffer = Encoding.Default.GetString(byteBuffer); 하지만 MemoryStream을 이용한 방법도 있으므로 사이즈가 큰 데이터는 MemoryStream을 이용한 방법을 사용하는것도 괜찮은듯 싶다. public static string GetStreamEncoding(byte[] inBytes) { usin.. 2021. 1. 29.
Regex(정규식)을 이용한 IP주소 확인 IP정보를 입력하는 입력창에서 올바른 IP를 주소를 정규식으로 확인할때 유용하게 사용된다. public static bool IsIPAddr(string sIPAddr) { bool isIPAddr = false; Regex regex = new Regex(@"^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$"); if (regex.IsMatch(sIPAddr)) { isIPAddr = true; } return isIPAddr; } 2021. 1. 29.
Windows Keyboard 이벤트 Windows 키보드 이벤트 코드 나열 KeyCode Value KeyCode Value VK_BACK 0x08(8) VK_NUMPAD8 0x68(104) VK_TAB 0x09(9) VK_NUMPAD9 0x69(105) VK_RETURN 0x0D(13) VK_MULTIPLY 0x6A(106) VK_SHIFT 0x10(16) VK_ADD 0x6B(107) VK_CONTROL 0x11(17) VK_SEPARATOR 0x6C(108) VK_MENU 0x12(18) VK_SUBTRACT 0x6D(109) VK_PAUSE 0x13(19) VK_DECIMAL 0x6E(110) VK_CAPITAL 0x14(20) VK_DIVIDE 0x6F(111) VK_ESCAPE 0x1B(27) VK_F1 0x70(112) VK_.. 2021. 1. 22.
WPF TextBox 숫자만 입력 처리 WPF TextBox에 숫자만 입력받고자 한다. 여러가지 방법이 있겠지만 PreviewTextInput event를 이용하여 간단히 해결 한다. 코드는 char.IsDigit가 조건에 맞을 경우 e.Handled = true; 로 적용하여 event가 적용될 수 있도록 한다. private void OnValue_PreviewTextInput(object sender, TextCompositionEventArgs e) { if ((e.Text) == null || !(e.Text).All(char.IsDigit)) { e.Handled = true; } } 2021. 1. 1.