問題タブ [xmlserializer]
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.
c# - XmlSerializer serialize generic インターフェイスのリスト
XmlSerializer を使用して、T がインターフェイスである List(T) を永続化しようとしています。シリアライザーはインターフェイスが好きではありません。XmlSerializer を使用して異種オブジェクトのリストを簡単にシリアル化する簡単な方法があるかどうかに興味があります。ここに私が行くものがあります:
c# - XmlSerializer は、別のアセンブリの型で、その型がシリアル化可能である必要がある場合、ジェネリック制約付きのパブリック メソッドに XmlInclude を必要とします!
以下を検討してください。XmlSerializer でシリアル化したいクラスがあります。このクラスには、型が別のアセンブリにある型制約を持つパブリック ジェネリック メソッドがあります。
XmlSerializer 自体がメソッドに関係しているとは思わないでしょうし、通常は関係ありません。次の両方が正常に機能します。
また、型 Bar が Foo と同じアセンブリにある場合、シリアライザーも完全に満足します。
最初の例を実行すると、Bar が別のアセンブリで定義されている場合、プロジェクト参照にそのアセンブリが既にある場合でも、 Bar を含むアセンブリへの参照を追加する必要があることを示す実行時例外が発生します。XmlInclude を使用してこれを回避できます。
ただし、Bar がシリアライズ可能ではなく、そうすべき理由がない場合、インターフェイスをタイプとして返すパブリック プロパティなど、シリアライズできないものに最初にヒットしたときに実行時例外が発生します。パラメーターなしのコンストラクターなどのないクラス!
関連するが詳細ではない:ジェネリック型制約を使用すると、XmlSerializer が InvalidOperationException をスローします。
c# - XmlSerializer.Deserialize のルート要素が欠落しているか、要素が予期されていない問題
XML ドキュメントの逆シリアル化で問題が発生しています。逆シリアル化しようとしているドキュメントは次のとおりです。
私のクラスは次のようになります。
このコードを使用すると、次のエラーが表示されます: {"http://kiosk.surlatable.com/'> は予期されていませんでした。"}
名前空間も含むように XmlRoot 要素を変更すると、ルート要素へのエラーの変更が失われます。
これらのいずれかが期待どおりの結果をもたらすと思っていましたが、そうではありませんでした。誰かが私がここで見逃しているものを見つけることができますか?
c# - C#でXMLシリアル化を介して16進数を出力する方法は?
XMLシリアル化を使用してデータを保存および呼び出すクラスと構造がいくつかありますが、必要な機能は整数を16進表現で出力することです。それを実現するためにこれらの構造に掛けることができる属性はありますか?
vb.net - 欠落しているブールフィールドをTRUEに逆シリアル化する方法
XmlSerializerを使用して、カスタムオブジェクトをファイルからアプリ内のオブジェクトに逆シリアル化します。 私の問題は、デシリアライズ元のファイルに存在しない新しいプロパティに対して、オブジェクトのフィールドをデフォルトで「False」ではなく「True」に設定したいということです。
デフォルトでは、.Netはこの値をfalseに割り当てています。これは、ファイルに存在しないためです。存在しない場合は、デフォルトでTrueに設定します。オブジェクトの定義のフィールドでSystem.ComponentModel.DefaultValue(True)属性を使用しましたが、機能しませんでした。誰かがこれを行う方法を知っていますか?
c# - XmlSerializer が空の要素をシリアル化する方法を変更する
XmlSerializer を使用しています。オブジェクトを正常にシリアル化しますが、クライアントは必要な空の要素をこの形式にする必要があります<star:Confirm/>
。代わりに、シリアライザーは空の要素を<star:Confirm></star:Confirm>
シリアライズして、クライアントが必要とする方法でシリアライズするように変更する方法があります。
c# - Property Should only Be Set by the Serializer
I have a class which communicates with an API and needs to do some transformations to any data it touches. This class is the equivalent too:
For my API callers I log every request and response by serializing these classes. They act as xml schemas almost.
Now everything works perfectly my only issue is that somebody could theoretically try and set and end up not getting their expected results back. Its mainly a design issue just trying to make my code responsible. I'd love to be able to use a private set on this but the XmlSerializer complains about it.
Is there a attribute or another technique to be able to make Transformed value as unsettable except by the serializer?
Also If there isn't an option, making the property as Obsolete is an option. Is there any other more appropriate attribute to use?
wpf - WPF アプリケーションの起動が遅いため、XmlSerializer を置き換えます
ネットワーク上の場所にある XML ファイルから映画のリストを読み取る WPF アプリケーションを作成しました。起動が遅い原因を調査し始めたところ、XmlSerializer には多くのオーバーヘッドがあることがわかりました。
プロジェクトを公開する前に、sgen を使用してアセンブリをビルドしましたが、現在、より良い解決策を検討しています。BinaryFormatter クラスを見てきましたが、XML ファイルは Linux サーバー上で実行されている PHP スクリプトによって作成されています。
XML ファイル リーダーを使用して自分でファイルをループする方がよいでしょうか、それともより良いオプションがありますか? 私はスピードを目指しているので、私の XmlSerializer を置き換える提案は大歓迎です。
ファイルを逆シリアル化するためのコードを次に示します。
ファイルの添付方法がわからなかったので、XML ファイルをペーストビンに貼り付けました。http://pastebin.com/Rxsy0R3c ありがとうベン
c# - XMLSerializer が xml ドキュメントのデシリアライズに失敗する
私はC#の初心者です。xml 応答を返す Java REST サービスがあり、C# XmlSerializer を使用して xml ドキュメントを逆シリアル化しようとしています。サンプルの xml ドキュメント応答を以下に貼り付けます。
この xml ドキュメントを Document オブジェクトに逆シリアル化すると、正常に動作します。私のドキュメントクラスは下に貼り付けられています
私のメイン プログラムでは、試してみると xmlNodes の配列を取得します。
サーバー側の Java REST サービス実装では、fields は実際には、インターフェースの 3 つの実装のインスタンスを含む配列リストです。(リストには、カスタム ビジネス オブジェクトである ScalarFieldImpl または ArrayFieldImpl を含めることができます)。
XmlSerializer を使用して、この xml フィールドを ScalarFieldImpl または ArrayFieldImpl にデシリアライズしたいと考えています。可能か知りたいのですが?もしそうなら、どうすればいいですか?
.net - さまざまなポリモーフィック ルートを持つ xml に .NET XmlSerializer を使用する
1 つのソースから異なるルートを持つ XML ドキュメントがあります。この質問で説明されているのと同じような XSD スキーマがあり、base タイプの abstract='true' ルート要素 'BaseElem' と、Base タイプを拡張し、substitutionGroup=' を使用する追加のルート要素 Elem1、Elem2 などがあります。 BaseElement' 属性。
xsd.exe は、[XmlRootAttribute] を持つ派生クラスのみを使用して、BaseElem と派生 Elem1、Elem2、... クラスを生成します。
組み込みの XmlSerializer を使用して、生成されたオブジェクトをシリアル化および逆シリアル化したいと考えています。
シリアル化:
要素を生成します。特定のルートでシリアル化するには、シリアライザー「new XmlSerializer(typeof(Elem1))」を作成する必要があります。
BaseElem が使用されている場合、逆シリアル化はまったく機能せず、次のようにのみ機能します。
よりポリモーフィックな単一のシリアライザ アプローチを使用するにはどうすればよいですか?
ありがとう!