1. 문제를 만나다 일관성 없는 엑세스 가능성: '[대상]' 필드 형식이 '[다른 대상]' 필드보다 액세스하기 어렵습니다. 참고 : MSDN - 컴파일러 오류 CS0052 이 오류는 걸리면 난감합니다 ㅡ.-;;; 에러 위치가 애매하기 때문입니다 ㅎㅎㅎ 2. 원인 정말 초보적인 실수지만 자주 하는 실수로 상속에서 접근자를 잘못 써서 그렇습니다. 자식에서 사용하는 접근자는 부모와 같거나 더 접근하기 힘든 접근자를 사용해야 합니다. 3. 해결 방법 예를 들면 '퍼블릭(public)'이 아닌 클래스나 요소를 퍼블릭으로 선언하면 발생합니다. 부모는 프라이빗(private)인데 자식이 그보다 더 접근하기 쉬운 퍼블릭으로 선언했기 때문입니다. 이 경우 'claTest1'을 'public'로 선언하던지 생성할 때 퍼블..
.NET에서 XML을 사용하기는 엄청 쉽습니다. 문제는 실버라이트는 다른 방식을 사용합니다....;;;; 연관글 영역 1. 테스트 데이터 테스트 데이터는 아래와 같습니다. 1-0 2-0 3-0 1-1 3-1 1-2 2-2 3-2 2. 사용하기 'System.Xml' 만 유징 해주시면 됩니다. 사실 'XmlDocument'로 로드만 된다면 그다음부터는 노드(Node) 순서대로 검색만 하면 됩니다. //도큐 생성 XmlDocument xDoc = new XmlDocument(); xDoc.LoadXml(txtXml.Text); //루트가저오기 XmlNode xNode = xDoc.SelectSingleNode("tests"); //검색할 요소 리스트 XmlNodeList xNodeList = xNode.Se..
원레 UrlEncode는 HttpUtility을 참조하면 됩니다. System.Web.HttpUtility; 그런데 컨트롤점해도 인텔리전스가 나오질 않더군요 ㅡ,.ㅡ; 이럴때는 수동으로 추가해야 하는데....어라? 어라? 어라라? 원래 System.Web라는 항목을 추가해야 하는데....없습니다? 으잌? 이유는 모르겠지만 WPF에서 이런경우가 좀 있습니다-_-;;; 여튼 System.Web.HttpUtility를 수동으로 추가 해야하는데 위치는 C:\Windows\assembly\GAC_32\System.Web\2.0.0.0__b03f5f7f11d50a3a\System.Web.dll 여기입니다. C:\Windows\assembly\GAC_32\System.Web\ 이 경로까지는 똑같지만 이후 폴더의 이름..
이 글에서는 스카이프 api를 이용하여 채팅, 전화 걸기, 전화 받기 할 것입니다. api만 이용하여 스카이프를 컨트롤하기 위해서는 클라이언트가 로그인되어 있어야 합니다. C#에서 스카이프를 사용하기 위해서는 재공된 Skype4COM.dll를 마샬링 해주어야 하는데...... 이미 누군가가 해논게 있습니다. ㅋ 코드 플랙스 - Skype for VisualStudio 이곳에서는 비주얼 스튜디오 SDK를 이용하여 스카이프 프로젝트를 생성할 수 있게 되어 있지만 굳이 그렇게까지 쓸 필요는 없고 'SKYPE4COMLib'만 유징 해서 사용하시면 됩니다. 0. UI 구성 저는 wpf 프로젝트로 하겠습니다만.... C#프로젝트라면 별 상관은 없습니다. (레이아웃 코드만 다를 뿐이니까요 ㅎㅎㅎ) 전역변수로 스카이프..
C# 클래스 라이브러리를 COM+에 등록해보겠습니다. 참고 : 마이크로 소프트 고객센터 - HOWTO: Visual C# .NET에서 서비스 대상 .NET 구성 요소 만들기 Com을 쓰던 Com+를 쓰던 어떻게 쓰는지는 자유이고 나같은 경우 클라이언트 프로그램에서 직접 DB에 접근하지 못하게 하려고 많이 씁니다. 웹참조도 비슷한 용도로 사용할수 있습니다. 웹의 경우 TCP/IP를 이용하여 따로 서버프로그램만들어 DB를 날려주는 프로그램을 만들어 쓰는 회사도 보았을 정도로 DB에 직접접근을 막는건 여러므로 좋습니다. 물론 저도 예전에는 멋모르고 그냥 서버프로그램 만들어 썼는데 Com+를 만나고나서는 Com+ 를 많이 이용하다가 요즘은 웹서비스를 많이 이용하고 있습니다. 따로 서버프로그램을 만드는거에 비해 ..
닷넷에서는 DB를 어떤 것으로 불러오든 기본적으로 'SqlDataReader'라고 보시는 것이 맞습니다. 리턴값은 다르지만 데이터리더(DataReader)로 읽어 들인 후 나머지 작업(한 줄만 뽑아 문자열로 리턴한다던가 하는 작업)이 가능하니까요. 문제는 'SqlDataReader'라는 녀석은 테이블의 스키마 정보나 데이터를 다 가지고 있지만 가공 안 한체로 들어있어서 그냥 사용하기에는 여러 가지로 번거롭습니다. 그래서 보통은 'List'나 'DataSet'으로 변환하여 사용하죠. 'List'로 변환하는 방법은 한가지뿐이 없습니다. 직접 반복문을 이용하여 바인딩하는 것입니다. 'DataSet'이나 'DataTable'의 경우 두 가지 방법이 있습니다. 'List'와 같이 직접 바인딩하거나 'SqlData..