2

HttpWebRequestをシリアル化しようとすると、次のエラーが発生します

アセンブリ'System、Version = 2.0.0.0、Culture = neutral、PublicKeyToken=b77a5c561934e089'に「System.Net.KnownHttpVerb」と入力してもシリアル化可能としてマークされていません。

.NetFramework2.0の使用

これは私のクラスが保持するプロパティの1つです。シリアル化する必要があります。

HttpWebRequestはSerializableとしてマークされているため、Serializeすることになっています

4

2 に答える 2

3

含まれているオブジェクトの1つがシリアル化不可としてマークされている場合、デフォルトのシリアライザーを使用しているのは「運が悪い」と思います。

可能であれば、代わりにWebリクエストのインスタンス化に使用されるパラメーターを取得し、代わりにそれらをシリアル化することをお勧めします。非協調オブジェクトを再構成するためのカスタムシリアライザー/デシリアライザーを作成します。

編集:ここにかなり良い記事があります

EDIT2:実際、少しグーグルした後、これが唯一のオプションであるように見えます。これは、HttpWebRequestのSerializable属性が.net2.0で廃止されたとマークされているためです。詳細については、こちらを参照してください(HttpWebRequestを検索してください)。

于 2008-12-08T23:00:57.187 に答える
0

System.Net.HttpWebRequest のシリアル化は、.NET 2.0 では廃止されました。

公式文書はこちら:

http://msdn.microsoft.com/en-us/library/aa497288.aspx

アプリの観点からは、これが最良の結果です。HttpWebRequest インスタンスの大部分は、通常は直接復元できない IO 状態です。

@Andrew-Rollingsが提案しているように、代わりにカスタムシリアライズを実装してリクエストパラメーターを保存/復元し、HttpWebRequestインスタンスを最初から再作成します。

于 2008-12-08T23:32:31.320 に答える