Example #1
0
        /// <summary>
        /// 클래스 객체를 XML에서 로딩한다.
        /// </summary>
        /// <typeparam name="T">클래스여야만 된다.</typeparam>
        /// <param name="_sFileName">파일 풀패스</param>
        /// <param name="_Obj">로딩할 객체</param>
        /// <returns>파일이 없으면 false</returns>
        public static bool LoadXml <T>(string _sFileName, ref T _Obj) where T : class
        {
            if (!CFolderMaker.MakeFilePathFolder(_sFileName))
            {
                return(false);
            }
            if (!File.Exists(_sFileName))
            {
                SaveXml <T>(_sFileName, ref _Obj);
                return(false);
            }
            if (!File.Exists(_sFileName))
            {
                SaveXml <T>(_sFileName, ref _Obj);
                return(false);
            }

            using (StreamReader Reader = new StreamReader(_sFileName))
            {
                XmlSerializer Serializer = new XmlSerializer(typeof(T));
                _Obj = (T)Serializer.Deserialize(Reader);
                //Serializer.Serialize(Reader,_Obj);
                Reader.Close();
            }
            return(true);
        }
Example #2
0
        /// <summary>
        /// 객체를 세이브함.
        /// </summary>
        /// <param name="_sFileName">파일 풀패스</param>
        /// <returns>저장 성공여부</returns>
        public bool SaveXml(string _sFileName)
        {
            if (!CFolderMaker.MakeFilePathFolder(_sFileName))
            {
                return(false);
            }

            try
            {
                using (StreamWriter _swWriter = new System.IO.StreamWriter(_sFileName))
                {
                    XmlSerializer serializer = new XmlSerializer(this.GetType());
                    serializer.Serialize(_swWriter, this);
                    _swWriter.Close();
                    return(true);
                }
            }
            catch (Exception e)
            {
                Log.ShowMessage("Exception", e.Message);

                //return false;
                throw new FileNotFoundException(e.Message);
            }
        }
Example #3
0
        /// <summary>
        /// xml파일에서 로딩함.
        /// </summary>
        /// <param name="_sFileName">파일 풀루트</param>
        /// <returns>로딩한 객체를 반환.</returns>
        public bool LoadXml(string _sFileName)
        {
            if (!CFolderMaker.MakeFilePathFolder(_sFileName))
            {
                return(false);
            }
            if (!File.Exists(_sFileName))
            {
                SaveXml(_sFileName);
                return(false);
            }

            try
            {
                //using : 반드시 Dispose()를 호출해서 소멸해야 하는 객체에서 몇 가지 값을 읽은 다음 자동 페기.
                using (StreamReader _srReader = new System.IO.StreamReader(_sFileName))
                {
                    XmlSerializer serializer = new XmlSerializer(this.GetType());

                    object oTemp = this;
                    oTemp = serializer.Deserialize(_srReader); //박싱이라 크면 안좋을듯 참조 대비 20배느림.
                    _srReader.Close();
                    return(true);                              //나중에 안되면 return serializer.Deserialize(_srReader);
                }
            }
            catch (Exception e)
            {
                Log.ShowMessage("Exception", e.Message);
                throw new FileNotFoundException(e.Message);
            }
        }
Example #4
0
        /// <summary>
        /// 클래스 객체를 XML파일로 저장한다.
        /// </summary>
        /// <typeparam name="T">클래스 형태의 객체만 올수 있다.</typeparam>
        /// <param name="_sFileName">저장할 파일의 패스및 화일명</param>
        /// <param name="_Obj">저장할 클래스 객체</param>
        /// <returns>루트를 모두 만들지 못하면 false</returns>
        public static bool SaveXml <T>(string _sFileName, ref T _Obj) where T : class
        {
            if (!CFolderMaker.MakeFilePathFolder(_sFileName))
            {
                return(false);
            }

            using (StreamWriter Writer = new StreamWriter(_sFileName))
            {
                XmlSerializer Serializer = new XmlSerializer(typeof(T));
                Serializer.Serialize(Writer, _Obj);
                Writer.Close();
            }
            return(true);
        }