본문 바로가기

SerializeToXML - C# - 기존에 TextWriter 객체에 Serialize 하니 XML Declaration 부분에 UTF-16으로 고정 되어서 MemoryStream 로 교체 - MemoryStream는 XML Declaration 부분을 표시 하지 않음 using System.IO; using System.Text; using System.Xml; using System.Xml.Serialization; // 구현 protected string SerializeToXML(T t) { string strXml = ""; XmlSerializer xs = new XmlSerializer(typeof(T)); try { using (MemoryStream ms = new MemoryStream()) { xs.Serialize.. 더보기
C# Web Service -> REST Web Service(WSDL), REST 어떤 방식으로 서비스를 만들면 좋을것인가 고민을 한적이있다. 그런데 왜 난 꼭 REST 방식을 웹페이지로 따로 만들어야 된다고 생각을 했을까? 그냥 아래와 같이 Web Service에 대해서 GET, POST 방식을 같이 노출하면 같이 사용할 수 있는데.. Web Service 의 인터페이스 메쏘드의 Input 파라미터에 대해서 Complex Type을 쓰지 않고 기본 타입을 쓰고, web.config 에 아래와 같이 GET, POST 방식을 노출 해주면 끝. 하지만 Basic Type 을 쓰면 Strong한 타입 체킹을 할 수 없다는 단점이 있긴하다.. 더보기
근황, 단상 - 2009.08.08 1. 서버의 "예약된 작업" 을 웹으로 모니터링 하기 위한 페이지를 만들기 우선 관련 API 를 조사하던 도중 아래의 것이 나왔다. http://msdn.microsoft.com/en-us/library/aa383614%28VS.85%29.aspx Developer Audience The Task Scheduler provides APIs for the following developers: Task Scheduler 1.0: Interfaces are provided for C++ development. Task Scheduler 2.0: Interfaces and objects are provided for C++ and scripting development respectively. Run-Time.. 더보기
C++0x, RValue Reference C++0x RValue Reference 라는것이 추가 되었다. RValue Reference는 Move semantics와 Perfect forwarding 이라는 두가지 기능을 가진다. 1. Move semantics 기존 부터 있던 Reference는 LValue Reference 라고 불린다. int n = 10; int &r = n; // LValue Reference int *p = &n; // 포인터 참조 방식 cout 더보기
C++0x Lambda 아래 링크의 글 중 Herb Sutter 의 Lambda 예제 및 설명에 관한 리플.. http://herbsutter.wordpress.com/2008/03/29/trip-report-februarymarch-2008-iso-c-standards-meeting/ []와 []안에 들어가는 내용에 대해서 명쾌하게 설명을.. Herb Sutter Re binders: Okay, I give! I’ll use a better example next time. (no name) asked: "How are local variables captured?" You have to specify whether it’s by copy or by reference. So this example is illegal beca.. 더보기
C++0x 지원 컴파일러 목록 http://wiki.apache.org/stdcxx/C++0xCompilerSupport 더보기
C++ Refactoring 기 작성되어 있던 C++ 컴포넌트에서 한개의 함수에 너무 많은 코드로 인해, 컴파일러 내부 오류를 경험하고 해당 코드에 대해서 리팩토링을 결심!! 관련된 작업은 Extract Method 이며 자동으로 해당 부분을 추출하여 Method를 만들어 주는 툴을 중심으로 알아 보았다. 이것 저것 알아보던 중 2개의 후보가 눈에 띠었다. 대상은 "Refactor! For Visual C++ 2005"와 "Visual Assist X" 에서 지원하는 Refactoring 에 관련된 기능이다. 결론부터 얘기하면 "Refactor! For Visual C++ 2005"의 기능이 쓸만 하였고 Visual Assist X 의 리팩토링 기능은 간단한 기능을 제외하고는 그다지 유용하지 못하였다. Visual Assist X .. 더보기
ATL Com Project VC++ 6 에서 VC++ 8 변환(업그레이드) VC++ 6 에서 ATL Com Project 만들어진 프로젝트를 VC++ 8 로 업그레이드를 할 경우 몇가지의 문제가 발견 되었다. 1. LINK : fatal error LNK1104: 'mtxguid.lib' 파일을 열 수 없습니다. 확인 해보니 더 이상 VC++ 8 버전에서는 'mtxguid.lib'가 존재 하지 않는다. 다른 lib 로 바이너리들이 통합 된것으로 보이며 링커 옵션에 추가 되어 있는 'mtxguid.lib' 를 지우면 된다. 추가적으로 main을 못찾는다는 링크 에러가 발생하면 "ATL에서 CRT 사용 최소화" 옵션을 사용 하지 않는다. 2. GetObjectContext 링크 에러 링크 옵션에 "comsvcs.lib" 를 추가 하면 된다. 3. def 파일의 심볼에 서수 지정 경.. 더보기
An Overview of the Coming C++ (C++0x) Standard C++ 0x에 대한 리뷰 동영상인가 보다. 시간있을때 하나씩 정리를 해볼까 하는데.. 움.. 더보기
생각의 정리.. 2년전부터 항상 머리속에서 고민하고 있는 주제가 있다. 어떻게 하면 나의 머리속의 있는 내용을 문서로 정리할까 이다. 첨부터 오프라인 다이어리는 생각도 안했고 (요 부분은 내가 다이어리를 깔끔이 정리하는 능력이 없기때문에 ;;) PDA나 핸드폰도 고민을 해보았으나 역시 입력장치의 불편함으로 인해 아니다 라는 결론에 도달했다. 물론 노트북도 대안이긴 하지만 회의시간에 항상 노트북을 들고 다니면서 타이핑을 하기에는 사람과의 커뮤니케이션이라는 부분에서 좀 아니다라는 생각이 들었다. 어찌 되었던 회의는 손으로 끄적거리면서 정리를 하고 그 내용을 파일로 정리를 하는것이 가장 낳겠다는 결론에 도달하고 그럼 어떤 어플리케이션으로 해야할지에 대해서 고민하기 시작하기 이른다. 1. 메일 클라이언트를 바꾸다 : 아웃룩 익.. 더보기