代码如下:
using System;
namespace Data_Exchange_Client
{
/// <summary>
/// 客户端配置类
/// </summary>
public class Config
{ public string BaseDatabase
{
get
{
return mBaseDatabase;
}
set
{
mBaseDatabase = value.Trim ();
}
}

/// <summary>
/// 轮询时间间隔(秒)
/// </summary>
public int CheckTimerInterval
{
get
{
return mCheckTimerInterval;
}
set
{
mCheckTimerInterval = value;
}
}
/// <summary>
/// 当前数据库地址
/// </summary>
public string DataIP
{
get
{
return mDataIP;
}
set
{
mDataIP = value.Trim ();
}
}
/// <summary>
/// 数据库密码
/// </summary>
public string PWD
{
get
{
return mPWD;
}
set
{
mPWD = value.Trim ();
}
}
/// <summary>
/// 数据库用户ID
/// </summary>
public string UID
{
get
{
return mUID;
}
set
{
mUID = value.Trim ();
}
}
/// <summary>
/// 备份周期
/// </summary>
public string RunPeriod
{
get
{
return mRunPeriod;
}
set
{
mRunPeriod= value.Trim();
}
}
/// <summary>
/// 备份周期单位
/// </summary>
public string RunPeriodUnit
{
get
{
return mRunPeriodUnit;
}
set
{
mRunPeriodUnit = value.Trim();
}
}
/// <summary>
/// 备份具体时间 00:00:00
/// </summary>
public string RunTime
{
get
{
return mRunTime;
}
set
{
mRunTime = value;
}
}
/// <summary>
/// 第几天运行可以是周和天
/// </summary>
public int RunDay
{
get
{
return mRunDay;
}
set
{
mRunDay = value;
}
}
/// <summary>
/// 备份文件类型 true为完全 false 为增量
/// </summary>
public bool BackUPType
{
get
{
return mBackUPType;
}
set
{
mBackUPType = value;
}
}
/// <summary>
/// 备份文件路径
/// </summary>
public string FileDir
{
get
{
return mFileDir;
}
set
{
mFileDir = value.Trim();
}
}
/// <summary>
/// 备份文件配置时间
/// </summary>
public System.DateTime ConfigTime
{
get
{
return mConfigTime;
}
set
{
mConfigTime = value;
}
}
private System.DateTime mConfigTime;
private string mBaseDatabase;
private int mCheckTimerInterval = 1*60*1000;
private string mDataIP;
private string mPWD;
private string mUID;
private string mRunPeriod;
private string mRunPeriodUnit;
private int mRunDay;
private string mRunTime;
private bool mBackUPType;
private string mFileDir;
}
}
序列化代码如下:
public SetupConfig(ref Config ConfigObjectName, string ConfigName)
{
try
{
FileStream fs1 = new FileStream(ConfigName ,FileMode.Open );
XmlReader reader = new XmlTextReader (fs1) ;
XmlSerializer ser = new XmlSerializer(typeof(Config));
ConfigObjectName =(Config) ser.Deserialize(reader); //在这句报错
fs1.Close ();
mStatus = 0;
}
catch
{
mStatus =1;//序列化错误
}

}

解决方案 »

  1.   

    Config类的定义不变, 先序列化再反序列化会出错吗.如果不会,是反序列化的xml不对.
      

  2.   

    public System.DateTime ConfigTime
    {
    get
    {
      return mConfigTime;
    }
    set
    {
      mConfigTime = value;
    }
    去掉就没有问题了,或者是把System.DateTime 改成 string 就没有问题了??
    我只是想知道为什么会出错??? }
      

  3.   

    出错原因得另找, 看序列化得到的xml是什么
      

  4.   

    DataTime可以序列化...把序列化的代码也贴出来看下..
      

  5.   

    有哪些不能序列化的呢,好象有DataTable还有哪些?
      

  6.   

    <?xml version="1.0" encoding="gb2312" standalone="no"?>
    <Config>
    <ConfigTime>2006-10-20 10:00</ConfigTime>
    <CheckTimerInterval>10</CheckTimerInterval>
    <DataIP>192.168.0.73</DataIP>
    <BaseDatabase>coos2005</BaseDatabase>
    <UID>sa</UID>
    <PWD>123</PWD>
    <RunPeriod>1</RunPeriod>
    <RunPeriodUnit>day</RunPeriodUnit>
    <RunDay>0</RunDay>
    <RunTime>00:00:00</RunTime>
    <BackUpType>true</BackUpType>
    <FileDir>D://</FileDir>
    </Config>
    这个是反序列化的xml文件