퇴근5분전


필요해서 만들어두었던 객체 하나를 까먹고 있었다. 왜만들어놨지 라는 의문에 쌓였던...

JsFW.Xml.ListMng<T> 라는 기본타입..
제너릭을 이용한 리스트관리였던것...

본래 취지가 기억이 안나는 ㅡ.,ㅡ;;; 그런 객체인데.. 음... Insert, Update, Delete가 protected internal로 되있는거 보면..

새로운 관리 객체로 만들어 사용하도록 만든거였는데 직접 구현해보니... 먼가 빠진듯 한데... 쩝!!


1. 기본 xml클래스 정의

 [JsFW.Xml.XmlRoot_Tag("AA"), JsFW.Xml.XmlElement_Tag("DD")]
    public class AA : JsFW.Xml.JsFWXmlBaseObject
    {
        string _TA = string.Empty;

        [JsFW.Xml.XmlATT_Tag]
        public string TA
        {
            get { return _TA; }
            set { _TA = value; }
        }
    }

2. 리스트로 관리할 객체 재정의 
 public class AAList : JsFW.Xml.ListMng<AA>
    {
        public AAList() : base(@"D:\ttt\","test.xml",  typeof(AA).Name )
        {}

        public void Add(AA a)
        {
            base.Insert(a);
        }
      
        public void Remove(AA a)
        {
            base.Delete(a);
        }

        public override string ToString()
        {
            return base.ToString();
        }
    }



3. 리스트 사용!!
            AAList alst = new AAList();
            alst.Add(new AA() { TA = "OA" });
            alst.Save();


결과

<?xml version="1.0" encoding="utf-8" ?>
- <AA ID_IDENTITY="6">
  <CC _XID="1" TA="A1" />
  <CC _XID="2" TA="up1" />
  <DD _XID="3" TA="A1" />
  <DD _XID="4" TA="A1" />
  <DD _XID="5" TA="A1" />
  <KK />
  <DD _XID="6" TA="OA" />  입력 잘되었다!!  
  </AA>





* 참고 :  JsFW.Xml.XmlElement_Tag("DD") <-- 지정되있으므로 해당 갯수만큼만 나옴 위에 xml에서 총 4개의 Element가 로드되고 아래 소스에서 1번 index를 삭제함. 

            AAList alst = new AAList();
            alst.Remove( alst.DataSource[ 1 ]);
            alst.Save();

삭제 결과

<?xml version="1.0" encoding="utf-8" ?>
- <AA ID_IDENTITY="6">
  <CC _XID="1" TA="A1" />
  <CC _XID="2" TA="up1" />
  <DD _XID="3" TA="A1" />
<DD _XID="4" TA="A1" /> <-- 삭제된 Element
  <DD _XID="5" TA="A1" />
  <KK />
  <DD _XID="6" TA="OA" />
  </AA>