我要序列化存储一个对象,该对象包含很多属性,都可以序列化存储,但是在我添加一个句柄类型的属性后就不能序列化了,出异常说反射对象不成功.
求解决方法 [Serializable]
public class textXML
{
public int ID;
public string name;
public string age;
public string key; Size videoSize = new Size(640, 480);
public Size VideoSize
{
get { return videoSize; }
set { videoSize = value; }
}
//上面的都可以 private IntPtr previewWndHandle;
/// <summary>
/// 设置窗口句柄,而不可从配置文件中加载,加载序列化就出问题,为什么
/// </summary>
public IntPtr PreviewWndHandle
{
get { return previewWndHandle; }
set { previewWndHandle = value; }
}
}
求解决方法 [Serializable]
public class textXML
{
public int ID;
public string name;
public string age;
public string key; Size videoSize = new Size(640, 480);
public Size VideoSize
{
get { return videoSize; }
set { videoSize = value; }
}
//上面的都可以 private IntPtr previewWndHandle;
/// <summary>
/// 设置窗口句柄,而不可从配置文件中加载,加载序列化就出问题,为什么
/// </summary>
public IntPtr PreviewWndHandle
{
get { return previewWndHandle; }
set { previewWndHandle = value; }
}
}
解决方案 »
- 导出日志,遇到一点问题
- 关于C#事件方法里的参数
- 如何在dataGridView中读取int类型的数据
- 获取进程的pid 用户名 cpu 内存 描述
- C#串口读取问题
- 请问Connection.connectionString连接字符串中的password='sa'在第一个DLL中密码还存在再第二个DLl中就消失了,为什么?
- 如何开发自定义的对话框组件?如开发一个MyOpenDialog,能有像OpenDialog一样的应用方法!
- 构造函数的简单问题?
- c# 如何使多个窗口互相调用(我是刚接触c#的新人)
- 很着急啊,请教了!请问如果一个服务器有多个IP,然后在IIS中建立了一个自己的虚拟目录,如何能够得到和我建立的虚拟目录相关的那个IP地
- 在线等,修改代码后,调试没变化!!!
- c#文件批量拷贝的问题
你把句柄1000保存了~~然后再读出来1000 ~~可句柄会根据程序退出或则重新加载什么的会变的..如果强制序列话
private int previewWndHandle;
/// <summary>
/// 设置窗口句柄,而不可从配置文件中加载,加载序列化就出问题,为什么
/// </summary>
public IntPtr PreviewWndHandle
{
get { return new IntPtr(previewWndHandle); }
set { previewWndHandle = value.ToInt32(); }
}
我的意思是想让窗口句柄不序列化,只序列化其他的属性,
但是我用
[NonSerialized] public IntPtr PreviewWndHandle
{
get { return previewWndHandle; }
set { previewWndHandle = value; }
}
就编译报错,说对这样属性不能使用NoSerialized, 晕
private IntPtr previewWndHandle;不是属性上`~
[XmlIgnore] private IntPtr previewWndHandle;
/// <summary>
/// 初始化摄像头时设置窗口句柄,而不可从配置文件中加载
/// </summary>
[XmlIgnore] public IntPtr PreviewWndHandle
{
get { return previewWndHandle; }
set { previewWndHandle = value; }
}