Estoy intentando copiar un objeto en el portapapeles de Windows y desactivarlo nuevamente. Mi código es así:Portapapeles Copiar objetos ay desde
Copiar en el portapapeles:
Clipboard.Clear();
DataObject newObject = new DataObject(prompts);
newObject.SetData(myString);
Clipboard.SetDataObject(newObject);
Dónde prompts
es una colección List<Data.Sources.PromptResult>
.
copia Off portapapeles:
IDataObject dataObject = System.Windows.Forms.Clipboard.GetDataObject();
if (dataObject.GetDataPresent(typeof(List<Data.Sources.PromptResult>)))
{
Type type = typeof(List<Data.Sources.PromptResult>);
Object obj = dataObject.GetData(type);
return (List<Data.Sources.PromptResult>)dataObject.GetData(type);
}
El GetFormats()
muestra el formato que estar en la lista y los GetDataPresent(List<Data.Sources.PromptResult>)
rendimientos cierto, pero si trato de sacar el objeto de la clase Clipboard
con GetData(List<Data.Sources.PromptResult>)
puedo obtener un retorno de nulo.
¿Alguien tiene alguna idea de lo que podría estar mal?
me encontré con los mismos problemas, pero lo resolví de manera diferente. Todo lo que tenía que hacer era asegurarme de ** cada parte de mi objeto ** (subobjetos) era de tipo serializable. Menos código por ahora. Pruebe el [método IsSerializable] (http://www.codeproject.com/Articles/8102/Saving-and-obtaining-custom-objects-to-from-Window)! Si su clase no es serializable, la excepción describe el problema bastante bien. – Bitterblue