C# 클래스(Class)나 모델(Model)을 Json파일로 저장했다가 다시 불러서 모델에 바인딩하기는 쉽습니다. 한단계씩 따라 해 봅시다. 1. 준비 누겟(Nuget)에서 'Newtonsoft.Json'를 찾아 설치해 줍니다. 'TestData001.cs' 클래스를 생성합니다. /// /// 테스트용 모델1 /// public class TestData001 { public string StrData1 { get; set; } public string StrData2 { get; set; } public int IntData1 { get; set; } public int IntData2 { get; set; } } 'TestData002.cs' 클래스를 생성합니다. public enum Test1Typ..
저는 자마린 프로젝트에서 발생했지만 기존 프로젝트에 닷넷 스탠다드(.NET Standard)로 프로젝트를 만들면 발생할 수 있는 오류가 아닌가 생각됩니다. 1. 오류 발생 자마린 프로젝트에서 PCL이 닷넷 스탠다드(.NET Standard)로 표준화되었습니다. 그래서 기존에 만들었던 PCL을 닷넷 스탠다드로 바꾸는 작업을 하고 있는데...... 'EmbeddedResource' 중복 항목이 포함되었습니다. .NET SDK에는 기본적으로 프로젝트 디렉터리의 'EmbeddedResource' 항목이 포함됩니다. 프로젝트 파일에서 이러한 항목을 제거하거나, 프로젝트 파일에 해당 항목을 명시적으로 포함하려면 'EnableDefaultEmbeddedResourceItems' 속성을 'false'(으)로 설정할 수..
트라이~캐치(try~catch)는 런타임에서 오류를 잡아내는 좋은 방법의 하나 입니다. 문제는 디버그할 때는 오류 위치가 잡히지 않기 때문에 오류 추적이 힘들다는 문제가 있죠. 1. 트라이 캐치도 조건문을 사용할 수 있다. 캐치(catch)에 조건을 줘서 원하는 조건에 중단 점이 동작하도록 할 수 있습니다. 캐치문 뒤에 웬(when)문을 붙여 사용할 수 있습니다. (참고 : Microsoft docs - try-catch(C# 참조) ) catch (ArgumentException e) when (e.ParamName == "…") { } 이런 식으로 말이죠. 2. 활용하기 간단하게 예제를 만들어 봅시다. 버튼을 몇 개 만들고 시작 버튼을 하나 만듭니다. 버튼들은 변수의 상태를 바꿔주는 기능을 넣고 시작..
닷넷 코어는 IIS가 없는 환경에서도 동작하도록 구성되어 있습니다. 그러나! 만약 윈도우 환경에서 닷넷 코어를 돌려야 한다면 결국 IIS에서 돌려야 관리하기 편한 것이 사실입니다 ㅎㅎㅎ iis에 asp.net core를 올려 봅시다. 1. 샘플 프로젝트 만들기 asp.net mvc core 프로젝트를 생성합니다. 'wwwroot'폴더에 'index.html' 파일을 만들고 내용물은 대충 넣읍시다. 프로젝트에서 오른쪽 클릭을 하고 개시를 합니다. 기본 설정으로 개시하면 'bin'폴더에 개시를 하게 됩니다. 이 파일들을 iis에 복사합니다. 2. IIS 세팅하기 IIS에서 닷넷 코어를 돌리기 위해서는 먼저 세팅을 해야 합니다. 2-1. ASP.NET Core Module IIS에 세팅하려면 'Asp Net ..
ZDNet Korea - MS, 비주얼스튜디오용 자마린 무료화 드디어 자마린이 무료화가 됐군요. 저번에도 한 번 이야기했지만 자마린은 이상할 정도로 비쌉니다. (참고 : 유니티(unity3d)와 모노(mono project) ) 예전부터 MS에서는 다양한 플랫폼을 지원하기 위해 자마린쪽에도 협업을 한다고 했습니다. 그런데 인수를 하고 무료로 푸는 군요 ㅎㅎㅎ 자마린이 무료화가 중요한 이유는 드디어 유니티의 모노버전이 올라갈 것이라는 것입니다. 유니티가 모노버전을 못 올리는 이유로 자마린측에서 너무 비싼 가격을 불러서 라고 했기 때문입니다. 예상대로 MS가 자마린을 무료화 한 건 확실히 기분이 좋습니다 ㅎㅎㅎ 오픈소스 진영의 .Net에 대한 의심의 눈길을 보내고 있다는걸 인식해서인지 .Net을 MIT라이선..
1. 증상 누겟(Nuget)에서 라이브러리를 받고 나서 빌드하니 이런 에러가 납니다. 어셈블리에서 "CodeTaskFactory" 작업 팩터리를 로드할 수 없습니다. codetaskfactory could not be found 하..... 2. 해결 방법 일반적으로 이 오류는 잘못된 참조 때문에 발생합니다. 보통은 뭐가 잘못됐는지 파일 이름이 나오기 마련인데 이 에러로 퉁치는 경우도 있습니다. ㅎㅎㅎㅎ 누겟에 의해 참조가 추가된 경우 1) 종속된 참조가 자동으로 추가되지 않거나 2) 옛날 버전을 참조해서 흔히 나오는 에러 갔습니다. 이런 경우 누겟 참조에 의해 발생했다면 해당 참조를 업데이트하는 것만으로도 사라지기도 합니다. 다른 버전으로 업데이트를 한 다음 다시 원하는 버전으로 업데이트해도 해결됩니다..
.net에서 소켓 프로그래밍을 하려면 몇 가지 선택사항이 있는데 그중 하나가 'SocketAsyncEventArgs'입니다. 전에 '[.Net] SocketAsyncEventArgs - 큰 데이터(Large Data) 전송할 때 생기는 문제'라는 글에서 버퍼크기보다 큰 데이터가 오는 경우 어떤 일이 발생하는지 다루었습니다. (참고 - [.Net] SocketAsyncEventArgs - 큰 데이터(Large Data) 전송할때 생기는 문제 ) 그렇다면 'SocketAsyncEventArgs'를 이용하여 큰 데이터(Large Data)나 연속 메시지(Continuous Receive)에 의한 리시브데이터 뭉침 현상을 어떻게 처리해야 하는지를 알아보겠습니다. 이 포스팅의 완성된 코드는 공개프로그램에서 확인할..
사실 대부분의 'OAuth'인증은 웹을 통해서만 하므로 애플리케이션이던 웹이던 처리에는 크게 차이가 없다는 게.... (제가 모르는 건인지 자료를 못 찾은 건지 ㅡ.-;;) 어찌 됐건 C#애플리케이션을 통해 네이버에서 'OAuth'로그인을 하도록 하겠습니다. 로그인이 잘되었는지 확인하기 위해 접근 토큰(Access Token, 액세스 토큰)을 발급받아 블로그의 카테고리를 조회해 보도록 하겠습니다. 0. 네이버 'OAuth'로그인 절차 애플리케이션에서 네이버 'OAuth'인증을 하기 위해서는 웹 브라우저를 사용할 수 있는 컨트롤이 필요합니다. 로그인 인터페이스가 웹으로만 되어 있으므로 웹 브라우저 컨트롤(C#에서는 'WebBrowser' 컨트롤)을 이용하여 사용자에게 네이버 로그인을 유도하고 로그인 결과를..
1. 증상 'NAudio'를 빌드하고 프로젝트에 참조로 넣고 돌렸더니.... 빌드 중인 프로젝트의 프로세서 아키텍처 "MSIL"과(와) "[빌드정보]" 참조의 프로세서 아키텍처 "x86"이(가) 일치하지 않습니다. 이 불일치로 인해 런타임 오류가 발생할 수 있습니다. 프로젝트와 참조 간의 프로세서 아키텍처를 정렬하거나 프로젝트의 대상 프로세서 아키텍처와 일치하는 프로세서 아키텍처를 포함하는 참조에 대한 종속성을 사용하는 것처럼 구성 관리자를 통해 프로젝트의 대상 프로세서 아키텍처를 변경하십시오. 아.... 이건 참조한 'DLL'과 사용하려는 플랫폼간 '플랫폼 대상'이 달라서 발생합니다.(64비트 전용이라던가 하는 문제) 2. 해결 방법 소스가 있다면 해당 'DLL'의 프로젝트 속성 > 빌드 > 플랫폼 대..
다른 포스팅에서 'SocketAsyncEventArgs'를 사용하는 방법을 알아봤습니다. (참고 : [.Net] 'SocketAsyncEventArgs' 사용하기) 그런데 'SocketAsyncEventArgs'를 이용하면 이상한 현상이 있는데.... 설정된 크기 이상의 데이터를 보내면 리시브가 여러 번 오거나 데이터가 깨져서 오는 현상이 있습니다. (디폴트값이 8192byte였나 그럴 겁니다.) 이런 문제 때문에 큰 데이터(Large Data)를 보낼 수 없다는 것입니다. 그런데 말입니다. 몇 가지 테스트를 해보니 이게 문제가 아니고 제가 관련 정보를 못 찾아서 그런거 같습니다 ㅎㅎㅎㅎ (바보 된 거죠-_-;) 연관글 영역 1. 문제의 발견 한번 'SocketAsyncEventArgs'로 큰 데이터를 ..