問題タブ [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.

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

xml - XmlSerializationとリスト

私は次のクラスを持っています

残念ながら、シリアル化すると次のようになります

そのルートノードを通知にするにはどうすればよいですか?クラスでいくつかの異なる属性を試しましたが、コンパイルされません。

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

c# - XML シリアル化 - DataContractSerializer / Binary / XMLSerialiser をいつ使用するか

私は今しばらくこれを見てきました

フィールド名を変更するとシリアル化が壊れるため、バイナリシリアル化は推奨されないようです =? 良くない

XMLSerializer には問題があります。これは、属性または要素である要素とその命名をより詳細に制御できますが、引数なしのコンストラクターとパブリック フィールドを提供する必要があるためです。

DataContractSerializer は優れていますが、すべてのサブクラスを明示的に追加する必要があるのは残念です

ただし、この制限がない NetDataContractSerializer に出くわしました。

あなたの目標が C# シリアル化であり、xml のサイズに大きな制約がない場合、NetDataContractSerializer は常にここに行く方法ですか??

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

c# - XmlRootAttributeは継承可能ですか?

C#のXmlSerializerでシリアル化するクラスがあります。XmlRoot属性でマークされているので、この属性を派生クラスに継承したいと思います。

ドキュメントを見ると、XmlRootがAttributeUsageAttributeを使用してInheritをfalseに設定するとは書かれていません(Inheritはデフォルトでtrueに設定されています)が、XmlRoot属性なしで継承されたクラスを逆シリアル化しようとするとエラーが発生します( "<rootNode xmlns ='' >は予期されていませんでした。」)。

これは現在機能します:

これは機能しませんが、私が欲しいものです:

私が逆シリアル化しようとするかもしれないXMLはInheritedClass次のようになります:

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

.net - ルート要素なしでコレクションのコレクションをシリアル化するときのXmlSerializerのバグ?

少し長い質問ですが、なるべく簡潔にしましたので、ご容赦ください。クラスのバグのように見えXmlSerializerますが、Microsoftに提出する前に、見逃したものがあるかどうかを確認したいと思います。これは完全に可能です。

代表的なケースとして次のXMLを生成しようとしています。これは基本的にコレクションのコレクションですが、外部コレクションに追加の要素があります。

シリアル化クラスは次のとおりです。

そして、それを実行するための簡単なテストプログラムは次のとおりです。

これは、コレクションの親ノードを削除するために使用XmlElementするトリックを採用しています。これは、要素が放出されないことを意味し、外部配列(タイプ)に<Groups>含まれるオブジェクトごとに要素が放出される必要があります。ただし、実行時に、これにより次の例外が発生します。Link[]<Group>XmlSerializer

一時クラスを生成できません(result = 1)。エラーCS0030:タイプ「Link [][]」を「Link[]」に変換できませんエラーCS0029:タイプ「Link[]」を「Link[][]」に暗黙的に変換できません

私の推測では、シリアライザーは何らかの理由でコレクションをフラット化しようとしており、タイプが一致しないため、外部配列に含まれるタイプがシリアル化クラスのコンパイルエラーの原因ではないと考えていますLinkLink[]

どう思いますか?これはバグですか?そして、?を使用した後に私が使用しているXMLを生成するための回避策はありXmlSerializerますか?

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

c# - List<> アイテムの XmlSerializer.Deserialize

SOや他の場所で見つけることができるすべてのソリューションを試しましたが、これが機能しない理由がわかりません。

オブジェクトへの XML 文字列の単純な逆シリアル化。オブジェクトには 1 つのプロパティ (リスト) があります。

デシリアライズ コードは次のとおりです。

XML は次のとおりです。

このコードはコンパイルおよび実行され、UpdateData 型のオブジェクトを返しますが、Updates プロパティは空です。何か案は?

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

enums - .Netシリアル化、XmlDataReader、SQLデータベースおよびFlagsAttribute!

私の状況の概要を簡単に説明します。

私はシリアル化に大きく依存するN層アプリに取り組んでいます。オブジェクトは主にシリアル化された方法でデータベースと対話し、オブジェクトとコレクションはストアドプロシージャ内からXMLとして挿入、更新、読み取りされます。

小さなデータクラスの中には、ExecuteNonQuery、Readerなどを使用してデータを操作する方が簡単なものもありますが、問題が発生しました。

データは、ExecuteNonQueryを使用し、パラメーターを使用してデータベースに挿入されます。挿入されるデータの一部は、FlagAttributeがアタッチされた列挙型(DBにintとして格納される)であるプロパティです。次のような列挙型の場合:

読み戻される値は、1、3、7などの整数値であり、ExecuteXmlReader(XmlReaderオブジェクトの入力)を使用するクラスのより大きなグループの一部として読み戻されるときに、シリアル化を使用せずにデータベースに挿入される場合があります。次に、逆シリアル化する必要があります。たとえば、7の場合、「インスタンス検証エラー:「7」はFruitの有効な値ではありません」のようになります。これは、次の形式でシリアル化されることを想定しているためです。

全体として、少し混乱します。データベースに1、2、4形式で格納することで回避できる可能性がありますが、残念ながら、現在のint型ではありません。

誰かがこれについて何か考えを持っていますか?

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

c# - xmlserializer がインポートでスキーマを正しくデシリアライズしない

xsd.exe のスキーマから生成されたクラスを使用して、C# で xml ファイルを逆シリアル化しようとしています。残念ながら、ファイルの一部のみが適切に逆シリアル化されています。残りは、解決できない理由で null として返されます。

私のプロセスは次のとおりです。C# コードが生成される myschema.xsd ファイルから始めます。

インポートされたparentschema.xsdファイルは次のとおりです。

上記の 2 つのスキーマ ファイルを xsd.exe に渡します。

myschema_parentschema.cs ファイルを生成します

それをテストするために、サンプルの xml ファイルを逆シリアル化しようとしています。

これを次の XmlSerializer コードに渡します。ここで、リーダーは上記の xml ファイルの XmlReader です。

逆シリアル化されたオブジェクトに null body プロパティがあるのはなぜですか? また、Foo 要素を適切に逆シリアル化するにはどうすればよいですか?

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

.net - xsdなしでXMLを表す

注:XSDは使用できません...理由については説明しません。

デシリアライズする必要のあるクラスで次のxmlを適切に表現するのに問題があります。

XML:

問題は属性ノードを表すことです

私がこれまでに持っているのは:

私は価値を保存するために何かが欠けていることを知っています、そしておそらく

0 投票する
4 に答える
3520 参照

.net - 逆シリアル化時に XmlSerializer が null プロパティを初期化しないようにする方法はありますか?

私はこのクラスを持っています:

MySerializableClass がシリアル化されたときに MyList が null の場合、逆シリアル化されたときにも null にする必要がありますが、XmlSerializer はクラスを逆シリアル化するときに常にそれを初期化します。

null プロパティの初期化を回避する方法はありますか?

null の場合、MyList はシリアル化されたファイルにも記録されません。null 値でロードして再度保存すると、MyList は null ではなくなり、0 個の項目を持つ List<> としてシリアル化されますが、null ではありません。

ありがとう。

より詳しい情報:

IsDeserializing プロパティは、クラスの構造におけるいくつかのコード制限により実行できません

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

serialization - XMLシリアル化-この方法でモデルをシリアル化することは可能ですか?

私は次のモデルを持っています:

だから基本的に私は次のことができるようになりたいです:

シリアル化すると、次のようになります。

私はDataContractsとXmlSerializerをいじってみましたが、それを行う方法を見つけることができません。