본문 바로가기
Wcf : binding 바인딩은 엔드포인트에연결하는 데 필요한 전송, 인코딩 및 프로토콜을 지정합니다. 바인딩 확장명 및 사용자 지정 바인딩은 응용 프로그램 기능을 지원하는데 필요한 사용자 통신 기능을 구현합니다. 출처 : https://docs.microsoft.com/ko-kr/dotnet/framework/wcf/extending/extending-bindings 2019. 5. 26.
string , string builder 차이 using System;using System.Collections.Generic;using System.Diagnostics;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;namespace study{ class Program { static void Main(string[] args) { string txt = "helloworld "; StringBuilder sb = new StringBuilder(); sb.Append(txt); Stopwatch st = new Stopwatch(); st.Start(); for (int i = 0; i 2019. 3. 5.
[c#] Mutex , semaphore, monitor * Mutex 1. 설명- Mutex 클래스는 해당 머신의 프로세스간에서도 베타적Locking을 하는데 사용.- Mutex 락킹은 Monitor 락킹보다 약 50배 정도 느리기 때문에 프로세스내에서만 배타적 Lock이 필요한 경우 C#의 lock이나 Monitor클래스를 사용한다.- 한 프로세스 내에서 사용할 경우 Monitor를 사용하는 것이 빠른 방식이다. 2. Mutex 활용 - 한 머신내에서 오직 한 응용프로그램만 실행되도록 할 때 한 컴퓨터 내 한 프로세스만 뜨게 하기 위해 고유의 Mutex명을 지정할 필요가 있음. 처음 프로세스가 먼저 Mutex를 획득하면 다른 프로세스는 Mutex를 획득 할 수 없기 때문에 오직 하나의 프로그램만 머신내에서 실행되는 것 * Semaphore 1. 설명- 공유.. 2019. 2. 17.
[c#] local ip 찾는 함수 private string GetLocalIP() { string myIP = string.Empty; IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName()); foreach (var ip in host.AddressList) { if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { myIP = ip.ToString(); return myIP; } } return myIP; } 2018. 7. 3.
리플렉션 닷넷 응용프로그램의 어셈블리 파일에는 메타데이터가 들어있다.BCL에서 제공되는 리플렉션 관련 클래스를 이용하면 메타데이터 정보를 얻는 것이 가능하므로 이제 그 유용성을 직접 코드로 확인해 보자. 리플렉션은 C#코드가 빌드되어 어셈블리에 포함되는 경우 그에 대한 모든 정보를 조회할 수 있는 기술을 일컫는다. using System;using System.Threading;using System.Collections.Generic;using static System.Net.Mime.MediaTypeNames;using System.Reflection;namespace csharp_study{ class Program { static void Main(string[] args) { AppDomain curre.. 2017. 8. 13.
전처리기. c#의 전처리기 지시문은 특정 소스코드를 상황에 따라 컴파일 과정에서 추가/제거 하고 싶을때 사용한다.하나의 코드로 조건을 걸어 여러개의 상황을 만족하는 코드를 작성할때 유용하다. 아래처럼 #if /#endif 를 사용하여 컴파일 조건을 걸 수 있다. using System;using System.Threading;using System.Collections.Generic;using static System.Net.Mime.MediaTypeNames;namespace csharp_study{ class Program { static void Main(string[] args) { string txt = Console.ReadLine(); if (string.IsNullOrEmpty(txt) == fals.. 2017. 8. 13.