12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Collections;
- using System.Reflection;
- namespace IControls_FireManager
- {
- // 리플렉션 처리는 여기서 전담
- //// 참고사항 : 리플렉션은 반드시 인덱서 사용
- //// 실제 레포트 데이타 출력시 사용되는 클래스
- //// 데이타 (반드시 Indexer 를 사용해야 Reflection 이 동작 되므로 엑티브레포트 데이타 클래스 선언시 주의바람)
- //public class _Report_Default // 표시 데이타 -> No;IP;Version;OkCnt;ReqCnt;Persent
- //{
- // public string No { get; set; }
- // public string IP { get; set; }
- // public string Version { get; set; }
- // public string OkCnt { get; set; }
- // public string ReqCnt { get; set; }
- // public string Persent { get; set; }
- //}
- public static class _Reflection
- {
- // ArrayList 의 인덱스에 해당하는 멤버변수를 찾아서 값을 가져온다
- public static object GetMemberValue_ArrayList_ByClass(ArrayList list, int Index, string key)
- {
- // 예외 처리
- if (list.Count == 0) return null;
- // 클래스 멤버변수명 조회
- MemberInfo[] ClassMembers = list[Index].GetType().GetMembers();
- foreach (MemberInfo item in ClassMembers)
- {
- if (item.MemberType == MemberTypes.Property) // 인덱서 속성을 이용
- {
- if (item.Name == key)
- {
- MethodInfo ClassFunc = list[Index].GetType().GetMethod("get_" + item.Name);
- object FieldValue = ClassFunc.Invoke(list[Index], null);
- return FieldValue;
- }
- }
- }
- return null;
- }
- // 클래스안의 멤버변수명을 조회하여 ArrayLIst 로 추출한다
- public static ArrayList GetMemberName_ToArrayList(object data)
- {
- ArrayList result = new ArrayList();
- // 클래스 멤버변수명 조회
- MemberInfo[] ClassMembers = data.GetType().GetMembers();
- foreach (MemberInfo item in ClassMembers)
- if (item.MemberType == MemberTypes.Property) // 인덱서 속성을 이용
- result.Add(item.Name);
- return result;
- }
- }
- }
|