私は[Serializable]とマークしたクラスをクリップボードにコピーしようとしています。 GetData()を呼び出すと常にnullが返されます。IDataObject.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、および値型の配列が含まれています。