問題タブ [xml-serialization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
8 に答える
64943 参照

c# - ビルドの一部としてXmlシリアル化アセンブリを生成する

このコードはFileNotFoundExceptionを生成しますが、最終的には問題なく実行されます。

例外は次のとおりです。


タイプ'System.IO.FileNotFoundException'の最初のチャンスの例外がmscorlib.dllで発生しました

追加情報:ファイルまたはアセンブリ'MyAssembly.XmlSerializers、Version = 1.4.3190.15950、Culture = neutral、PublicKeyToken=null'またはその依存関係の1つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。


シリアル化アセンブリが見つからない場合、フレームワークは自動的にシリアル化アセンブリを生成するようです。 sgen.exeを使用して手動で生成できます。これにより、例外が軽減されます。

Visual StudioでXMLシリアル化アセンブリを自動的に生成するにはどうすればよいですか?


更新:シリアル化アセンブリの生成:オン設定では何も実行されないようです。

0 投票する
2 に答える
1278 参照

visual-studio-2005 - Visual Studio 2005 が Xml シリアル化アセンブリを生成しないのはなぜですか?

プロジェクト設定の [シリアル化アセンブリの生成] を [オン] に設定すると、Visual Studio 2005 でシリアル化設定が生成されないのはなぜですか?

0 投票する
12 に答える
88567 参照

php - XML ドキュメントとしての PHP オブジェクト

特定のPHPオブジェクトを取得してXMLとしてシリアル化する最良の方法は何ですか? 私は simple_xml を見ていて、それを使用して XML をオブジェクトに解析しましたが、それが逆にどのように機能するかは明確ではありません。

0 投票する
3 に答える
1690 参照

wcf - WCF XmlSerializer の制御

WCF にいくつかの REST Web サービスを実装しています。XMLに無効な要素が含まれている場合、これらのサービスが「Bad Request」を返すようにしたいと考えています。

xml シリアル化は、XmlSerializer によって処理されています。デフォルトでは、XmlSerializer は不明な要素を無視します。XmlSerializer.UnknownElement をフックしてこのハンドラーから例外をスローできることはわかっていますが、これは WCF にあるため、シリアル化を制御することはできません。この動作をどのように実装するかについてのアイデア。

0 投票する
2 に答える
3506 参照

c# - 生成されたプロキシ クラスに属性が含まれていません

.Net 3.0 と VS2005 を使用。

問題のオブジェクトは WCF サービスから消費され、レガシ API の XML にシリアル化されます。したがって、TestObject をシリアル化するのではなく、[XmlRoot] 属性が欠落している .TestObject をシリアル化していました。ただし、子要素のすべての [Xml*] 属性は、生成されたプロキシ コードに含まれていたため、問題なく機能しました。そのため、すべての子要素は正常に機能しましたが、生成されたプロキシ コードに [XmlRoot] 属性が含まれていなかったため、外側の要素は正常に機能しませんでした。[XmlRoot] 属性を含む元のオブジェクトは、手動で正常にシリアル化されます。

生成されたプロキシ クラスも正しくシリアル化されるように、プロキシ コードに [XmlRoot] 属性を含めることはできますか? それができない場合は、[XmlType] を使用する必要があると思いますが、他のコンポーネントを変更する必要があるため、前者を優先します。また、自動生成されたプロキシ クラスを手動で編集する必要も避けたいと考えています。

サンプル コードを次に示します (クライアントとサービスを同じアプリに含めました。これは迅速でテスト目的のためです。サービス参照コードをコメント アウトし、アプリの実行中にサービス参照を追加してから、サービス コードのコメントを外して実行します。 .)

これが生成する Xml を次に示します。

0 投票する
3 に答える
1248 参照

c# - XMLシリアライゼーションに配列インデックスを含める

私はこのようなクラスを持っています

XMLSerializer から次のように XML を出力します。

しかし、XML を次のようにしたい:

index 属性は、配列内のアイテムの位置と同じです。

「XMLAttribute」属性を使用して SomeChildClass にインデックス プロパティを追加することもできますが、その場合、オブジェクトをシリアル化する前に、配列をループしてその値を設定することを覚えておく必要があります。

追加できる属性や、インデックス属性を自動的に生成する他の方法はありますか?

0 投票する
6 に答える
12595 参照

c# - オブジェクトのシリアライズ時の XML 処理命令の省略

C# VS2003 / .Net 1.1 アプリケーションでオブジェクトをシリアル化しています。ただし、処理命令なしでシリアル化する必要があります。XmlSerializer クラスは次のようなものを出力します。

結果のテキストを処理してタグを削除せずに、次のようなものを取得する方法はありますか?

興味のある方のために、私のコードは次のようになります...

0 投票する
6 に答える
12681 参照

c# - 遅い SoapHttpClientProtocol コンストラクター

Microsoft Dynamics CRM を使っていくつかの実験を行っています。Web サービスを介して対話し、プロジェクトに Web 参照を追加しました。Web サービス インターフェイスは非常に豊富で、生成された "Reference.cs" は 90k loc です。

コンソール アプリケーションで Web リファレンスを使用しています。私はしばしば何かを変更し、再コンパイルして実行します。コンパイルは高速ですが、Web サービス参照の更新は非常に遅く、15 ~ 20 秒かかります。 CrmService service = new CrmService(); プロファイリングにより、すべての時間が SoapHttpClientProtocol コンストラクターで費やされていることがわかります。

原因は明らかに、XML シリアライゼーション コード (上記の 90k loc には含まれていません) が、JIT される前に実行時に生成されるという事実です。これは、コンストラクターの呼び出し中に発生します。遊んで試してみると、待ち時間はかなりイライラします。

sgen.exe、ngen、および XGenPlus (数時間かかり、500MB の追加コードが生成される) のさまざまな組み合わせを試しましたが、役に立ちませんでした。私は、必要に応じて準備ができている CrmService インスタンスがほとんどない Windows サービスを実装することを検討しましたが、それは過剰に思えます。

何か案は?

0 投票する
1 に答える
3539 参照

.net - XML シリアル化、空白なし

次のシリアル化方法があります。

ただし、ネストされた要素がインデントされたxmlを返します。シリアライザーでそれを止める方法はありますか、それとも検索置換ルーチンを実行してすべてを取り除く必要がありますか?

基本的に、私が見たいのは:

0 投票する
3 に答える
1990 参照

c# - C# でシリアル化された XML からオブジェクトを読み込むためのベスト プラクティス

ご挨拶、

次のように、ファイルから構築できる特定のオブジェクトがあります。

要するに、「わかりました。デシリアライズしたばかりのこのオブジェクトは、実際のオブジェクトです」と言いたいのです。これを行うにはいくつかの方法があり、どれがベストプラクティスと見なされるのか疑問に思っています。私のアイデアは次のとおりです。

  • フィールドごとにオブジェクトをコピーする copy-into-me 関数を構築します。これは現在の実装であり、新しいメンバーがオブジェクトに追加されるたびに、それを「copy-into-me」関数に追加することも覚えておく必要があるため、これは恐ろしい考えであると確信しています。これを維持する方法はありません.
  • オブジェクトをロードするための事実上のコンストラクターとして機能する ConfigObj クラスの静的メソッドを構築します。これははるかに優れているように聞こえますが、ベストプラクティスとは言えません。

しかし、私はどちらにも完全に満足しているわけではありません。ここで認められているベストプラクティスは何ですか?