jjccx

jjccx's blog
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Korea - XML序列化

Posted on 2005-04-30 10:37  jjccx  阅读(344)  评论(0)    收藏  举报

Korea:Keep optimistic regardless of every adversity,中文的意思应该是“就算事与愿违,也要保持乐观。”这段时间确实让人很难过,但我想我仍然要乐观一点.

using System;
using System.IO;

namespace JJCCX.Xml.Serialization
{
    
/// <summary>
    
/// 将对象序列化到 XML 文档中和从 XML 文档中反序列化对象。JJCCX.Xml.Serialization.XmlSerializer 使您得以控制如何将对象编码到 XML 中。
    
/// </summary>

    public class XmlSerializer
    
{
        
/// <summary>
        
/// 初始化 JJCCX.Xml.Serialization.XmlSerializer 类的新实例。
        
/// </summary>

        public XmlSerializer()
        
{
        }


        
/// <summary>
        
/// 反序列化指定文件包含的 XML 文档。
        
/// </summary>
        
/// <param name="type">此 JJCCX.Xml.Serialization.XmlSerializer 可序列化的对象的类型。</param>
        
/// <param name="filename">XML文件的相对路径或绝对路径。</param>
        
/// <returns>要被反序列化的 System.Object。</returns>

        public static object Load(Type type, string filename)
        
{
            FileStream fs 
= null;
            
try
            
{
                fs 
= new FileStream(filename, FileMode.Open, FileAccess.Read);
                System.Xml.Serialization.XmlSerializer serializer 
= new System.Xml.Serialization.XmlSerializer(type);
                
return serializer.Deserialize(fs);
            }

            
catch(Exception ex)
            
{
                
throw ex;
            }

            
finally
            
{
                
if(fs != null)
                    fs.Close();
            }

        }


        
/// <summary>
        
/// 序列化指定的 System.Object 并将 XML 文档写入文件。
        
/// </summary>
        
/// <param name="obj">此 JJCCX.Xml.Serialization.XmlSerializer 可序列化的对象的类型。</param>
        
/// <param name="filename">XML文件的相对路径或绝对路径。</param>

        public static void Save(object obj, string filename)
        
{
            FileStream fs 
= null;

            
try
            
{
                fs 
= new FileStream(filename, FileMode.Create);
                System.Xml.Serialization.XmlSerializer serializer 
= new System.Xml.Serialization.XmlSerializer(obj.GetType());
                serializer.Serialize(fs, obj);    
            }

            
catch(Exception ex)
            
{
                
throw ex;
            }

            
finally
            
{
                
if(fs != null)
                    fs.Close();
            }

        }

    }

}