C# - config-r

개요 scripts와 Roslyn을 사용하여 스크립트 방식의 설정 파일을 사용할 수 있다. 저장소 https://github.com/config-r/config-r NuGet으로 설치 Quickstart NuGet으로 설치 실행 파일과 같은 이름의 .csx 파일을 프로젝트에 추가(예 실행파일 이름이 ConsoleApplication1.exe 라면 ConsoleApplication1.exe.csx). 추가한 파일의 프로젝트 속성 ‘Copy to Output Directory’에서 Web...
더 읽기

C# - Async/Await

http://csharpstudy.com/CSharp/CSharp-async-await.aspx C# 5.0 이 나온 이후 각 써드파티 라이브러리에서 비동기 메소드 지원 간편한 비동기 프로그래밍:async/await http://www.simpleisbest.net/post/2013/02/06/About_Async_Await_Keyword_Part_1.aspx http://www.simpleisbest.net/post/2013/02/12/About_Async_Await_Keyword_Part_2.aspx http://www.simpleisbest.net/post/2013/02/16/About_Async_Await_Keyword_Part_3.aspx http://www.simpleisbest.net/post/2013/02/28/About_Async_Await_Keyword_Part_4.aspx http://www.simpleisbest.net/post/2013/03/12/About_Async_Await_Keyword_Part_5.aspx ###async를 사용한 가상 함수 정의 virtual public async Task<bool> Process() { var task = new TaskCompletionSource<bool>(); await task.Task; return task.Task.Result;...
더 읽기

C# - Windows Event Log

개발 시에 Windows가 제공하는 이벤트 로그를 사용하면 로그 보기/관리가 쉬워진다. C# 을 이용해 Windows Event Log 쓰기 [http://mainia.tistory.com/412] static void Main(string[] args) { WriteEventLogEntry("This is an entry in the event log by daveoncsharp.com"); } private static void WriteEventLogEntry(string message) {...
더 읽기

C# - WM_COPY_DATA

참고 글 http://www.codeproject.com/KB/cs/ipc_wmcopy.aspx http://www.codeproject.com/KB/threads/InterprocessCommunicator.aspx http://www.codeproject.com/KB/cs/wm_copydata_use.aspx MessageWindow http://www.codeproject.com/KB/threads/IPCBetManagdUnmanagd.aspx 예제 코드 const int WM_COPYDATA = 0x4A; [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern IntPtr SendMessage(IntPtr hwnd, int msg, IntPtr wparam, IntPtr lparam); ................ //Process[] AppServerProcess = Process.GetProcessesByName("LoginServer"); //................. //SendMessage(AppServerProcess[0].MainWindowHandle, WM_COPYDATA, IntPtr.Zero, iPtrForCdsMsg);...
더 읽기

C# - NLog

특징 오픈소스 닷넷 플랫폼 로그 라이브러리 .NET Compact, mono도 지원 사용이 쉽고, 설정은 설정 파일과 소스 코드를 통한 2가지 방법 제공. 옵션 지정으로 버퍼링, 비동기, 로드 밸런싱, 장애대처 등을 할 수 있다. 출력 옵션 Files - single file or multiple,...
더 읽기

C# - 정규 표현식 라이브러리 VerbalExpressions

소개 기존의 복잡한 방식의 정규식을 이해하기 쉽도로 해주는 라이브러리. 처음에는 JavaScript용으로 나왔지만 이후 대부분의 언어를 지원하고 있다. 소스 코드는 GitHub에 공개 되어 있다. https://github.com/VerbalExpressions/CSharpVerbalExpressions 간단 예제 [TestMethod] public void TestingIfWeHaveAValidURL() { // Create an example of how to test for...
더 읽기

C# - Thread Local

닷넷 프레임워크 4.0 에서 추가 이전에는 비슷한 것으로 ThreadStatic 속성이 있었음 그러나 static 멤버에만 사용 가능. 멤버의 값은 보통 그 타입의 기본 값으로 초기화된다. 초기 값을 설정해도 무시된다. ThreadLocal 클래스는 위의 문제를 모두 해결 사용 방법 ThreadLocal<int> _id = new...
더 읽기

C# - File

클래스 단위로 파일에 쓰기 이 직렬화 방식은 꼭 .NET 플랫폼에서 서로 파일을 읽고 쓸 때만 사용 가능하다.만약 .NET으로 만든 프로그램에서 아래와 같이 파일을 만들고 이것을 네이티브에서 읽으면 앞에 다른 값이 들어가 있다( 정확하게는 직렬화 되는 클래스의 메타 정보가 들어가 있다...
더 읽기

C# - System.Lazy

System.Lazy ? System.Lazy 는 지연 초기화를 지원하는 클래스이다. .NET Framework 4.0 에서 추가 사용하는 경우 멀티 스레드 환경에서 공유 리소스의 초기화를 스레드 세이프하게 하고 싶을 때 초기화에 시간이 걸리는(또는 많은 하드웨어 자원을 사용하는) 클래스가 있을 때 이것을 사용할지 안할지 알...
더 읽기