У меня есть класс, который я обозначил как [Serializable], который я пытаюсь скопировать через буфер обмена. Вызов GetData() всегда возвращает null.IDataObject.GetData() всегда возвращает null с моим классом
Скопируйте код:
IDataObject dataObject = new DataObject();
dataObject.SetData("MyClass", false, myObject);
Clipboard.SetDataObject(dataObject, true);
код Paste:
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 и массивы значений типов.