본문 바로가기

Development/c#

(19)
반응형
Clickonce Process 로 실행 아주 간단한게 Process를 실행 시켜서 Clickonce URL을 호출 할 수 있다. URL 을 등록 .. string app = "http://url/[Project-Name].application"; Process.Start("rundll32.exe", "dfshim.dll,ShOpenVerbApplication " + app); 아주 간단 ^^
iBATIS.net Thread IBATIS.NET은 Entity Framework를 사용을 용이하게 지원하는 Framework 이다. 이번에 좀 고생 했던게 ibatis의 단점이라 생각이 드는 바로 속도 문제이다. 아무리 좋은 Framework 라도 해도 메소드를 한번 더 실행하게 되면 그만큼 느릴 수 밖에 없다는 것이 나의 이론이다. 하여튼 간에 실행 후에 바로 결과를 확인 하지 않는 경우 Thread로 처리하는 경우가 있었다. 시간이 좀 거리는 것을 편법으로 피해 가는 방법… 보통 .net에서 Thread를 사용하는 것은 방식으로 사용을 하는데 이 부분에 DaoFactory를 선언하면.. 와 같이 "WebSessionStore : ~~" 머시기 .. 가 나온다. → 해결 네임 스페이스에 다음과 같이 SessionStore를 추가 ..
c# DataTable 의 특정 DATA Column을 LIST로 반환 제목을 한국말로 표현하려니까 어렵네 ㅡ.ㅡ 설명을 하자면 linq를 이용해서 DataTable에서 특정 (선택한) Column의 DATA 를 List 으로 변환 한다는 얘기 이다. 구문은 간단하다. 위의 소스를 정리하면 dt의 DataTable에서 Column (ColumnName = 'col1') 인 DATA를 List result로 반환 하는 내용이다 ㅎㅎ 알고 나믄 정말 간단한데.. 아래는 Console Project의 테스트 스크립이다. namespace DataTableToListByLinq { class Program { static void Main(string[] args) { // 테스트 데이터 생성 DataTable dt = new DataTable(); for (int i = 0; i..
C# Obsolete Attribute (특성) 소스의 유지 보수중에 사용하던 메서드의 사용을 지향하도록 하는 방법으로 Obsolete를 지원 한다. MSDN을 참고 하면 : Obsolete 특성은 프로그램 엔터티를 계속 사용하지 않는 편이 좋은 것으로 표시합니다. 이 특성이 어떻게 구성되어 있는지에 따라 obsolete로 표시된 엔터티를 사용할 때마다 경고나 오류가 생성됩니다. 출처: 이 내용은 더 이상 사용하지 않을 경우에 error나 알람으로 알려주는 기능을 한다. 테스트를 위해 다른 메서드에 Chart 메서드를 호출 하면 컴파일시에 오류가 생성 된다. 이는, Obsolete에 error 인자 (두번째 boolean) 을 true 로 설정하면 된다.
[C#] 확장 메서드 확장 메서드를 테스트 하려 한다. 테스트 내용은 DB에서 반환 된 DataTable의 컬럼 명들을 반환 받는 것이 목적이다. MSDN 을 참고 하면 다음과 같이 설명 되어 있다. 출처: 확장 메서드를 포함하는 정적 클래스를 정의합니다. 클래스가 클라이언트 코드에 표시되어야 합니다. 액세스 가능성 규칙에 대한 자세한 내용은 액세스 한정자(C# 프로그래밍 가이드)를 참조하십시오. 표시 유형이 적어도 포함하는 클래스와 동일한 정적 메서드로 확장 메서드를 구현합니다. 메서드의 첫 번째 매개 변수는 메서드가 작동하는 형식을 지정하며 앞에 this 한정자가 있어야 합니다. 호출 코드에서 using 지시문을 추가하여 확장 메서드 클래스를 포함하는 네임스페이스를 지정합니다. 형식의 인스턴스 메서드인 것처럼 메서드를 호..
C# Entity를 Json string으로 변환 나이가 먹어가니 기억이 점점 없어 진다. ㅡ.ㅡ; 생각 났을 때 하나씩 등록 해 놔야 나중에 안 찾지.. /// /// Entity를 Json format의 String으로 변환 /// /// Entity Type /// 변환 할 Entity /// json string public string ObejctToJsonString(T jsonObject) { try { return JsonConvert.SerializeObject(jsonObject); } catch (Exception ex) { throw ex; } }
C# DataTable을 ObjectEntity로 반환 참 많이 쓰는데.. 프로젝트 때 마다 새로 만들어 쓰는거 같다. ㅡ.ㅡa 이젠 나이가 먹었나 할 때마다 생각이 안나고.. 생각난 김에 만들어 놨다. ㅎㅎ 참조해서 사용 하세요 /// /// DataTable을 Entity List로 반환 합니다. /// /// Entity Object /// 변환할 DataTable /// 변환한 Object private List ConvertToEntityList(DataTable dt) { if (dt == null) return new List(); var columnNames = dt.Columns.Cast() .Select(c => c.ColumnName.ToUpper()) .ToList(); var properties = typeof(T).GetPropert..
C#에서 DataMember의 Name 가져오기 Web Project에서 많이 사용하는 것이 json / entity object 이다. 이때 json의 이름과 entity의 이름과 다른 경우 매핑을 해주는 것이 Name 속성이다. 공통 class로 작업을 하면서 Name 속성을 바로 가져와야 하는 경우 들이 있다. 구글링의 결과 소스와 같이 활용 할 수 있다. Entity가 다음과 같이 선언이 되어 있을 경우 [DataContract] public class Station { [DataMember(Name = "stationName")] public string StationName { get; set; } [DataMember(Name = "stationId")] public string StationId { get; set; } } 아래의 dma..
[C#] WinForm,에서 popup Window가 항상 최상에 위치 참 별거 아닌데.. 속성를 다 알지 못해서 한참을 해메는 경우가 많다. 이것도 그런듯.. 제목에서 얘기 한 것 처럼.. Window Form을 Show() 로 올렸을 때, 모달 popup (ShowDialog()) 가 아니면 Opener (Parent) 뒤로 숨는다. 숨는 것이 아니고 머 자세히 말하믄 Opner가 focus를 받는거지.. 이 때 Popup 창을 항상 최상으로 올리는 것이다. private void ShowSearchBox() { frmSearchText pop = new frmSearchText(); pop.TopLevel = true; pop.Show(this); pop.textBox1.Focus(); }