我有一个我标记为 [Serializable] 的类,我试图通过剪贴板进行复制。调用 GetData() 始终返回 null。
复制代码:
IDataObject dataObject = new DataObject();
dataObject.SetData("MyClass", false, myObject);
Clipboard.SetDataObject(dataObject, true);
粘贴代码:
if (Clipboard.ContainsData("MyClass"))
{
IDataObject dataObject = Clipboard.GetDataObject();
if (dataObject.GetDataPresent("MyClass"))
{
MyClass myObject = (MyClass)dataObject.GetData("MyClass");
// myObject is null
}
}
MyClass 实际上是一个派生类。它和它的基础都被标记为 [Serializable]。我用一个简单的测试类尝试了相同的代码,它起作用了。
MyClass 包含 GraphicsPath、Pen、Brush 和值类型数组。