外部ソースからの JSON データを解析するコンソール アプリを作成しています。これは、.NET 4.0 (クライアント プロファイルではなくフル バージョン) を使用した C# です。次のように、System.Web.Script.Serialization.JavaScriptSerializer クラスを使用して、JSON データをオブジェクトに逆シリアル化しようとしています。
var targetObject = deserializer.Deserialize<TargetObjectType>(json);
通常、これは問題なく動作しますが、データに非常に大きなコレクションが含まれている場合、次のエラーが発生します: System.InvalidOperationException ("オブジェクトの現在の状態のため、操作は有効ではありません。") いくつかの調査を行い、これを見つけました: http: //support.microsoft.com/kb/2661403 . 基本的にマイクロソフトはセキュリティ対策としてアイテム数を制限しています。
これをオーバーライドする方法は、サポート記事にあるように Web.config にレコードを追加することですが、私の場合はうまくいきません。私はいくつかの調査を行い、ここでこの問題を抱えている他の人を見つけました: http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx。
私の質問はこれです: JavaScriptSerializer を使用して、コンソール アプリで大きなコレクションを持つ JSON オブジェクトを逆シリアル化する方法はありますか?
注意: 私のチーム リーダーは、Microsoft 以外のライブラリを使用したくないと考えています。これは、JSON.NET (別名 NEWTONSOFT) を使用できないことを意味するため、提案しないでください。