본문 바로가기

프로그래밍/의문/해결 기록76

c# wpf, Data Error: 40 : BindingExpression path error: ??? property not found on 'object' xaml에 viewmodel을 바인딩 하는데 해당 에러가 발생했다. 발생 원인은 바인딩 되는 ExcelSetting이 멤버 변수로 세팅되어서 그런 것으로, 이를 프로퍼티로 바꿔주니 정상적으로 바인딩 되었다. 결론. Binding엔 Property를 2019. 10. 9.
c#, Excel Application Quit 후에도 Excel App이 종료되지 않는 현상 Excel Application을 제대로 Quit()를 했는데도 Excel Application이 종료되지 않아 작업관리자에도 남아있었다. Application.Quit(); while(Application.Quitting) { Thread.Sleep(10); } Quit 후 Quitting이 끝날 때까지 대기하도록 하니 Excel Application이 정상적으로 종료 되었다. 2019. 9. 24.
FlatBuffer streaming 통신 원했던 동작 별도의 패킷 헤더를 붙이지 않고 FlatBuffer 바이너리만 송신한다. 사전 작업 FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE를 정의한다.(#define FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE) (Verifier의 GetComputedSize를 사용하기 위해) 방법 1. flatbuffer::Verifier를 이용하면 패킷이 완성되었는지 체크한다. 2. flatbuffer::Verifier::GetComputedSize()를 사용해 메세지 사이즈 만큼 읽기 인덱스를 뒤로 넘긴다. 샘플 코드 FlatBufferBuilder builder; auto serializedPacket = CreatePacket( builder, PacketBa.. 2019. 8. 11.
c# Regex의 패턴은 캐싱 된다. 정규식이 함수 안에 있으면 정규식 인스턴스가 만들어질 때마다 패턴이 컴파일이 되는 건가 해서 Regex를 static 인스턴스로 만들어두고 사용했었다. static Regex regex = new Regex("My Pattern"); // ... bool IsValid(string str) { return regex.IsMatch(str); } 찾아보니 최근 사용한 15개 정도의 정규식은 캐싱된다고 한다. 캐싱된 정규식을 이용하려면 다음과 같이 하면 된다. bool IsValid(string str) { string pattern = "My Pattern"; return Regex.IsMatch(pattern, str); // 정규식 패턴 풀에서 가져옴 } https://docs.microsoft.com.. 2019. 5. 10.