この質問は私が興味を持っているものに近いですが、完全ではありません。
C# で記述された .NET WinForms アプリケーションがあります。ListView
C# オブジェクトの配列を表示するコントロールがあります。これらのリストビュー項目を同じアプリケーション内の別のフォームにドラッグ アンド ドロップできるように接続し、オブジェクトの配列 (type 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
、このクラスに実装するのはかなり大変で、変な副作用が出るのではないかと心配です。
UPDATE : 実装ISerializable
しても役に立ちません。メソッドが呼び出されることはありません。同様に、Serializable
属性をクラスに追加してもまったく影響はありません。他のアイデアはありますか?