Этот вопрос близок к тому, что мне интересно, но не совсем.
У меня есть приложение .NET WinForms, написанное на C #.У меня есть ListView
элемент управления, который отображает массив объектов C #.Я подключил его, чтобы вы могли перетаскивать эти элементы списка в другую форму в одном приложении, и он правильно передает массив объектов (тип Session
) в обработчик удаления для этой другой формы.
Однако теперь я хочу поддерживать межпроцессное перетаскивание, когда я запускаю несколько экземпляров своего приложения.Это кажется , что оно будет работать (например, GetDataPresent
успешно), но в конечном итоге выдает исключение, когда я на самом деле пытаюсь получить данные - не может привести object[]
к Session[]
.
if (e.Data.GetDataPresent("Fiddler.Session[]"))
{
Session[] oDroppedSessions;
try
{
oDroppedSessions = (Session[])e.Data.GetData("Fiddler.Session[]");
}
catch (Exception eX)
{ // reaches here
}
}
Кто-нибудь знает, должен ли я реализовать ISerializable
для своих объектов, чтобы заставить эту работу?Обычно я просто пробовал бы это, но реализация ISerializable
для этого класса была бы весьма нетривиальной, и я беспокоюсь, что это может иметь странные побочные эффекты.
ОБНОВЛЕНИЕ : Реализация ISerializable
не помогает - метод никогда не вызывается.Точно так же добавление атрибута Serializable
в класс никак не влияет.Есть еще идеи?