从剪贴板中读出XmlElement对象的问题

zl_jennifer 2007-08-28 03:14:28
将一个XmlNode对象放进剪贴板是没问题,
读出时,能够验证类型正确,可就是读不出来节点?
是为什么? 请高手们指点下,谢谢!:)
...全文
277 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zl_jennifer 2007-09-05
  • 打赏
  • 举报
回复
谢谢各位!:)
我在试试看!
lovefootball 2007-09-03
  • 打赏
  • 举报
回复
解决的办法
1、把字符串放进去,或者自定义一个类,让此类拥有[Serializable]属性
2、创建自己的serializable类,这个比较复杂~~~
lovefootball 2007-09-03
  • 打赏
  • 举报
回复
必须是具有Serializable属性或者继承ISerializable才能放到剪贴板
而XmlElement没有[Serializable]属性也没继承ISerializable
dalianu 2007-09-03
  • 打赏
  • 举报
回复
我试过了。一样也是null....
真不明白为什么GetDataPresent返回true,而GetData返回null.
我的XML结构:
<?xml version="1.0" encoding="UTF-8"?>
<boot>
<channel channel_id="00000004">
<param-name>Root</param-name>
<param-value>AAAA</param-value>
</channel>
</boot>
zl_jennifer 2007-08-29
  • 打赏
  • 举报
回复
还请望各位指教!:-)
zl_jennifer 2007-08-29
  • 打赏
  • 举报
回复
///登录时加载一个XmlDocument文件
XmlDocument doc = new XmlDocument();
doc.Load("XMLFile11.xml");
///button_click 将一个node对象置入剪贴板
XmlNode node = doc.SelectSingleNode("//channel[@channel_id='00000004']");
if (node != null)
Clipboard.SetDataObject(node );
///button_click 从剪切板中取出此对象
IDataObject ido = Clipboard.GetDataObject();
Type myType = typeof(XmlElement);
if (ido.GetDataPresent(myType))
{
///此时取出的getNode为空?不知是何原因?
XmlNode getNode = (XmlNode)ido.GetData(myType);
}
dalianu 2007-08-28
  • 打赏
  • 举报
回复
我的意思是在你取之前的任何时间。
如果不行,你就贴一下代码吧。

zl_jennifer 2007-08-28
  • 打赏
  • 举报
回复
在放入剪贴板时,已将它做为一个单独的节点放进去的!
你说的,加一层根节点,是在什么时候加呢?
dalianu 2007-08-28
  • 打赏
  • 举报
回复
如果代码没问题,你试着加一层根节点。
zl_jennifer 2007-08-28
  • 打赏
  • 举报
回复
自己先顶下, 没人这样做吗?

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧