본문 바로가기
반응형

Programming29

[C#] JSON, JArray 직렬화, 역직렬화 간단 방법 (Newtonsoft.Json) 소개 및 의미 API 통신을 하다 보면 대부분 JSON 형식으로 많이 주고받는다. JSON을 C#에서 직렬화, 역직렬화 하여 사용하는 경우가 많은데 글쓴이는 'Newtonsoft.Json'을 이용해서 잘 사용하고 있다. 해당 글을 통해 쉽게 직렬화, 역직렬화 하는 방법을 알았으면 바란다. 직렬화? 역직렬화? 직렬화는 객체를 전송 가능한 형태로 만든다는 의미이다. 여기서는 JSON 을 직렬화한다는 표현은 JSON 형태로 만든다는 의미이다. 반대의 의미인 역직렬화는 직렬화된 형태를 다시 객체의 형태로 만드는 것이다. 직렬화는 Serializtion 이라 부르고 역직렬화는 Deserialization이라고 부른다. 직렬화, 역직렬화 해당글에서의 기본 베이스는 'Newtonsoft.Json'을 기본으로 하기 때.. 2022. 6. 30.
[C#] 두 날짜 차이 계산 방법 두 날짜 차이 계산 방법 두 날짜(DateTime) 의 차이를 계사하는 여러가지 방법을 알아보자. DateTime date1 = new DateTime(2022, 1, 1, 20, 00, 00); DateTime date2 = new DateTime(2022, 02, 01, 23, 00, 00); ' - ' 연산자를 통한 두 날짜 차이 계산 간단하게 '-' 연산자를 통하여 두 날짜 차이를 알 수 있다. Console.WriteLine((date2 - date1)); Console.WriteLine((date2 - date1).Days); 출력 31.03:00:00 31 가장 간단하게 할 수 있는 방법이다. 동일한 DateTime 형식으로 진행하면 된다. DateTime.Subtract 두 날짜 차이 계산.. 2022. 6. 23.
[C#] DirectoryInfo 클래스 (디렉터리 복사, 이동, 이름 바꾸기, 만들기 및 삭제) DiretoryInfo 클래스는 디렉터리에 관련된 클래스이다. 지정된 디렉터리에 대해서 접근하여 목록을 얻거나 생선, 이동 등 관련된 기능을 담고있다. 네임스페이스 : System.IO FrameWork : .Net Core 5 IDE : Visual Studio 2019 OS : Windows 10 파일 목록리스트 얻는 방법 DirectoryInfo 클래스를 이용하여 지정된 경로에 대한 파일 목록 얻는 방법을 알 수 있다. DirectoryInfo directoryInfo = new DirectoryInfo(”지정경로”) 를 통해 디렉토리 정보를 가져올 수 있다. using System.IO.DirectoryInfo DirectoryInfo directoryInfo = new DirectoryInfo(.. 2022. 6. 7.
[C#] The format of value 'application/json;charset=UTF-8' is invalid 최근 HttpClinet 로 수정중 해당 오류가 발생하게 되어 겪은 내용을 공유하고자 한다. 해당 문제는 생각보다? 쉬운 문제였다. HttpClient의 'Contet-Type' 설정에서 'charset=UTF-8' 을 지원하지 않는다는 것이다. Before > application/json;charset=UTF-8 After > application/json 개인적인 생각으로 Bug 일 것같은 생각이 들지만 현재 상황에서는 위에 처럼 수정해서 사용해야 할 것 같다. 대략적으로 HttpClient 짠 코드를 같이 첨부해두겠다. HttpRequestMessage 를 가지고 진행했으며 성공한 코드를 올려두었기때문에 만약, 참고해서 안된다면 댓글로 남겨주시면 도움을 드리겠습니다. HttpClient httpC.. 2022. 5. 31.
[C#] SYSLIB0014: WebRequest, HttpWebRequest, ServicePoint, WebClient는 더 이상 사용되지 않습니다. .Net 6 버전업을 하며 경고를 해결하던중 SYSLIB0014 해당 경고에 대해서 작성하게 되었다. 내가 진행하는 프로젝트에서 WebRequest(), HttpWebRequest() 를 사용하는데 해당 부분이 .Net 6 버전에서는 더이상 지원을 하지 않는다고 한다. 그래서 MS Docs 에 해결방법을 찾아 갔다. 그렇다. HttpClinet 를 사용하라고 한다. 아니면 경고 코드를 무시하면 되긴한데 RestSharp 도 최근 버전에서는 HttpClient 기반으로 비동기 형식으로 바뀌고 있기때문에 HttpClinet 로 수정하기로 했다. HttpClinet 에 대해서 아직 적용중이여서 추후 정리 자료를 올릴 예정이다. MS Docs의 HttpClinet 링크를 공유해놓겠다. [관련자료] SYSLIB0.. 2022. 5. 31.
[C#] 현재 실행 Method 이름 가져오기 가끔 현재 실행 Method 를 가져와야할 경우가 생긴다. 필자는 로그를 쌓는다거나 메소드 명을 확인해보는 여러가지 경우에 유용하게 사용한다. 직접적으로 넣으면 되겠지만 여러곳에서 빈번하게 작업해야하는 경우 사용하면 좋다. 더보기 [Environment] OS : Windows 10 Framework : .Net 5 Tool : Visual Studio 2022 Project : Console Project using System.Reflection; 해당 using 을 참조해야한다. MethodBase.GetCurrentMethod().Name; 위의 코드를 통해 현재 실행중인 Method 이름을 가져올 수 있다. 위에서 언급했지만 로그 또는 메소드 명을 확인해야하는 경우에 사용하면 유용하게 사용될 것.. 2022. 5. 24.
[C#] IEnumerable / ICollection / IList 차이점 IEnumerable, ICollection, IList 에 대해 알아보겠다. IEnumerable, ICollection, IList 3가지 모두 System.Collections 네임스페이스이다. using System.Collecionts [Envrionment] OS : Windows 10 Tool : Visual Studio 2022 Framework : .Net 6 IEnumerable, ICollection, IList 는 반복할 수 있도록 하는 인터페이스이다. 하지만 3가지 모두 컬렉션을 실행한다는 점에서는 동일하지만 각자 사용할 수 있는 범위가 다르다. 1. IEnumerable IEnumerable 는 모든 열거자의 기본 인터페이스이다. 열거자를 사용하여 컬렉션의 데이터를 읽을 수는 있.. 2022. 3. 7.
[C#] 'Obsolete' Attribute - 더 이상 사용하지 않는 것에 효율적으로 알리는 방법 프로그래밍을 할 때 설계되로 흘러가지 않는다. 왜냐하면 확장성, 재사용성, 더 나은 구조 같은 경우에 따라 설계는 변한다. Base 코드를 작성한 사람의 함수가 추후 사용하지 않는다면 다른 개발자에게 해당 사항을 전달하고 또 이와 관련된 개발자에게 전달한다면 너무 불편해진다. 이러한 상황을 해결하기위해 'Obsolete' 라는 Attribute 가 있다. 'Obsolete' 를 사용하는 상황은 더 이상 사용하지 않거나 or 사용하지 않을 예정인 함수, 변수 앞 에 '[Obsolete]' Attribute 를 붙여주면 된다. class Test { [Obsolete] public void Method() { } } 'Obsolete' 를 사용하면 해당 함수를 호출할 때 초록색 밑줄과 함께 더이상 사용하지 .. 2022. 2. 28.
반응형