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