为什么这个对象总是从剪贴板返回为null

时间:2010-07-07 13:54:46

标签: .net winforms clipboard

我正在使用以下代码

使用.net中的剪贴板
   List<object> templateList = new List<object>();
  Clipboard.Clear();


Clipboard.SetDataObject(templateList);
   IDataObject dataObject = Clipboard.GetDataObject();
   var x = (List<object>)dataObject.GetData(typeof(List<object>));

对于上面的代码,x是一个空的对象列表,如你所期望的那样

如果我将代码更改为

 List<Template> templateList = new List<Template>();
 Clipboard.Clear();
 Clipboard.SetDataObject(templateList);
 IDataObject dataObject = Clipboard.GetDataObject();
 var x = (List<Template>)dataObject.GetData(typeof(List<Template>));

x现在为空

Template的类是public和Serializable,应用程序在STAthread上运行

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

模板是否具有未标记为可序列化的任何对象属性? 换句话说,即使模板被标记为可序列化,您实际上是否尝试将其序列化,以确认其有效?