본문 바로가기

언어/C#

C# 웹서비스로 JSON 결과값 생성하기 출처: http://son10001.blogspot.kr/2015/05/c-json.html .Net 에는 웹서비스라는 좋은 기능이 있지만, 웹서비스란게 나올 당시에는 Xml 이 대세였던지라, 기본적인 결과값은 Xml 로 나오고, 웹에서 찾을수 있는 대부분의 예제들도 거의 대부분 Xml 을 가지고 설명한다. 하지만, 요즘은 JSON 이 대세인지라... .Net 웹서비스도 JSON 결과값을 출력할 필요가 있다. 일단 간단하게 웹서비스를 하나 생성하고... 서비스 이름은 아무거나 주면 되지만, 나의 경운 testService 라고 주었다. "다른 파일에 코드 입력" 이 체크되어 있어서 "testService.asmx" 에는 별 내용이 없다. 이대로 냅두면 되고... "testService.cs" 를 아래와 .. 더보기
C# WinForm : JSON 결과값을 반환하는 웹서비스 값 가져오기 출처: http://son10001.blogspot.kr/2015/05/c-winform-json.html .Net 의 웹서비스를 이용해서 JSON 데이터를 보내는 것을 만들어 보았다. [JSON 웹서비스 만들기 링크: http://son10001.blogspot.kr/2015/05/c-json.html] 그럼 이걸 써먹어야지. WinForm 에서 한번 불러와 보자. 일단 "Newtonsoft.Json" 를 참조에 넣자. 참조에 "NuGet 패키지 관리..." 에서... Json.NET 을 설치하면... 이렇게 "Newtonsoft.Json" 이 설치된다. 물론 JSON 데이터를 직접 컨트롤할 자신이 있다면 안해도 되긴 한다. 일단 MIT License 라서 부담이 적으니 뭐... 그냥 쓰자... 그리고.. 더보기
C#에서 Byte[]와 String간 변환하기 출처: http://blog.83rpm.com/archives/1049 서버에서 받은 데이터를 byte[]에 문자열을 저장하고 Message.Show()로 보여주려고 했더니 System.Byte[]만 계속 찍혔다.뭐가 문제인가 네이버에서 찾아봤더니 좋은 글 발견.String을 byte[]로 변환하려면, byte[] ba = System.Text.Encoding.Default.GetBytes(str);byte[]를 String으로 변환하려면, String str = System.Text.Encoding.Default.GetString(ba);출처 : http://blog.naver.com/hursh1225?Redirect=Log&logNo=40120911491 더보기
C#에서 레지스트리 읽고 쓰는 방법 출처: http://blog.83rpm.com/archives/1051 Registry 클래스를 이용한다.일단 소스 상단에 using Microsoft.Win32를 선언해준다.RegistryKey reg;reg = Registry.LocalMachine.CreateSubKey("Software").CreateSubKey("RegistryKeyTest");SetValue()를 통해 값을 설정하고 GetValue()를 통해 값을 읽어올 수 있다.reg.SetValue("Text", "글을 입력하겠소"); // 값을 저장한다.reg.GetValue("Text", "없음") // text라는 이름을 가진 값을 가져온다.// 이때 값이 없다면 "없음" 이라고 값을 얻어온다.reg.GetValue("Text") /.. 더보기
C#에서 HTTP POST로 JSON 데이터 보내는 방법 출처: http://blog.83rpm.com/archives/1445 회사 업무 중 HTTP POST로 Request Body에 JSON을 넣어서 보내야 할 일이 있어서 간단하게 짜본 WinForm 프로그램이다.이런 코드들을 간단하면서도 막상 필요할 때 찾아서 쓰기가 귀찮아서 찾아보기 쉽게 여기에 적어둔다.using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Net;using System.Text;using System.Threading.Tasks;using System.W.. 더보기
C#에서 엔디안 변경 출처: http://blog.83rpm.com/archives/1188 C#에서 네트워크 통신을 할게 있어서 바이트오더를 빅엔디안으로 해주려다가 알게 된게 있어서 정리한다.일단 바이트오더링을 하기 위해 리틀엔디안-빅엔디안의 변환이 필요한데 C#에는 이를 지원하는 메서드가 이미 있었다.http://msdn.microsoft.com/en-us/library/fw3e4a0f 에 있는 HostToNetworkOrder 와 NetworkToHostOrder 라는 메서드인데 이상한건 이 메서드들이 int16, int32, int64만 지원한다는 것이다. 난 uint16, uint32를 변경해야했기에 아무리 해봐도 이 메서드를 통해서는 바이트오더를 변경할 수 없었다. 강제로 형변환도 해봤지만 데이터가 잘못 들어가기만.. 더보기
C#에서 엑셀 문서 저장하기 출처: http://blog.83rpm.com/archives/1104 C#으로 사내용으로 쓸 프로그램을 만들다가 엑셀 파일로 저장해야할 일이 생겼다.인터넷을 찾아헤메다가 결국은 내가 사용하게 된 방법에 대해 정리한다.찾아본 끝에 내린 결로은 OpenXML 기술을 이용하는 방식으로 택했다. .xlsx라는 가장 최신의 엑셀 포맷이고 MS오피스 뿐만 아니라 오픈오피스에서도 잘 지원한다. OpenXML이 무엇인가에 대해서는 구체적으로 나도 잘 모르겠다. 혹시 관심 있는 사람들은 위키 같은 곳을 찾아봄이 좋을듯하다. 난 엑셀 파일 읽고 쓰기가 필요한 것이지 엑셀 포맷 그 자체에는 별로 관심도 없거니와 알 필요성도 적어서(물론 알면 좋겠지만) 일단은 OpenXML에 대해 잠깐만 웹서핑을 해본 후 사용하기로 결정했.. 더보기