У меня есть класс, который я пометил как [Сериализуемый], который я пытаюсь скопировать через буфер обмена. Вызов GetData () всегда возвращает ноль.
Скопировать код:
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 на самом деле является производным классом. И он, и его база помечены как [Сериализуемые]. Я попробовал тот же код с простым тестовым классом, и он работал.
MyClass содержит GraphicsPath, Pen, Brush и массивы типов значений.