序列化与反序列化

在discuz NT中看到的
xml与object之间的序列化与反序列化

         /// <summary>
        
/// 反序列化
        
/// </summary>
        
/// <param name="type">对象类型</param>
        
/// <param name="filename">文件路径</param>
        
/// <returns></returns>

         public   static   object  Load(Type type,  string  filename)
        
{
            FileStream fs 
= null;
            
try
            
{
                
// open the stream
                fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
                XmlSerializer serializer 
= new XmlSerializer(type);
                
return serializer.Deserialize(fs);
            }

            
catch(Exception ex)
            
{
                
throw ex;
            }

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

        }



        
/// <summary>
        
/// 序列化
        
/// </summary>
        
/// <param name="obj">对象</param>
        
/// <param name="filename">文件路径</param>

         public   static   void  Save( object  obj,  string  filename)
        
{
            FileStream fs 
= null;
            
// serialize it
            try
            
{
                fs 
= new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
                XmlSerializer serializer 
= new XmlSerializer(obj.GetType());
                serializer.Serialize(fs, obj);    
            }

            
catch(Exception ex)
            
{
                
throw ex;
            }

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


        }

你可能感兴趣的:(反序列化)