2
我与剪贴板工作在.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
如果我改变的代码是
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是现在空
的CLA ss for Template既是公共的,也是可序列化的,并且应用程序在STA线程上运行
任何想法?
非属性具有NonSerialized属性,我不认为您实际上需要能够将对象序列化到剪贴板 – 2010-07-07 14:04:25
http://msdn.microsoft.com/en-us/library/cs5ebdfz。 aspx指出,如果你将一个不可序列化的对象传递给Clipboard.SetDataObject,它将失败而不抛出异常。 所以模板必须使用SerializableAttribute和其图中的任何其他类型(http://msdn.microsoft.com/en-us/library/system.serializableattribute.aspx)进行标记。 希望这有助于! – barrylloyd 2010-07-07 14:12:24
我可以序列化然后反序列化列表对象 – 2010-07-07 14:53:39