1

C# ASP.Net MVC Web サイトがあります。HttpContext.Current.Request後で分析するために、オブジェクトに含まれるすべてのものを SQL Server のテーブルに 保存したいと考えています。

HttpContextオブジェクトをバイト配列にシリアル化し、それを SQL Server のバイナリ フィールドに格納しようとしましたが、シリアライザーはオブジェクトがマークされていないため、オブジェクトをシリアル化しませんSerializable

System.Web クラスをシリアライズ可能としてマークする方法はありますか? または、これを達成する別の方法はありますか?

4

2 に答える 2

1

プロダクション コードの場合、HttpContext のシリアル化の側面を変更できるとは思えません。これが本番環境ではない場合、Reflector やいくつかのプラグインなどのツールを使用して、Serializable 属性を挿入するようにアセンブリを変更してみてください (ただし、サブクラスでも行う必要がある場合があります)。

より簡単なオプションは、リフレクションを使用してすべてのパブリック フィールドとプライベート フィールドを列挙することです。単純な型を文字列表現に変換し、もう少し複雑なクラスで再帰することができます。これを行うためのツールを見つけることさえできるかもしれません。そのアイデアは、おそらくオブジェクト グラフ ビューアーに尋ねて参照されるでしょう。

于 2012-10-12T11:37:18.433 に答える
0

リクエスト全体を保存しないことをお勧めします。ノイズが多すぎるためです。

代わりに、必要な信号を選択してください。これは、特定の変数など、特に関心のあるものをログに記録します。

于 2012-10-12T11:34:14.853 に答える