問題タブ [ixmlserializable]
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# - XmlWriter での OmitXmlDeclaration と IXmlSerializable の実装
IXmlSerializable を実装してカスタム xml シリアル化を作成したいと考えています。IXmlSerializable インターフェイスを実装するこのテスト クラスがあります。
私がやりたいのは、xml宣言を省略することです。そのために、XmlWriterSettings の適切なインスタンスを作成し、それを 2 番目のパラメーターとして渡して、新しい XmlWriter を作成します。しかし、このコードをデバッグすると、newWriter.Settings.OmitXmlDeclaration が false に設定され、シリアル化されたデータにタグが含まれていることがわかります。私は何を間違っていますか?
実際のシリアル化は次のようになります。
2 番目の質問は、シリアル化するフィールドにカスタム型 ContactInfo を持つ型 Employee をシリアル化する場合、ContactInfo にも IXmlSerializable を実装する必要があるかどうかです。
c# - 入れ子になったオブジェクトの IList とカスタム XML シリアル化
IList をシリアライズしようとしています。したがって、これには IXmlSerializable を使用しています。クラスは次のとおりです。
SerializeTarget.Serialize からネストされたオブジェクトのシリアル化を呼び出すにはどうすればよいですか?
c# - IXmlSerializableを実装するWCFディクショナリ
デフォルトのDataContractSerializationを採用しているWCFサービスがいくつかあります。一部のサービスメソッドはDictionaryオブジェクトを返します。クライアントの1つがWCFサービス(biztalk関連)からXSDファイルを生成しており、彼はすべてのディクショナリタイプをIXmlSerializableを実装する新しいディクショナリタイプに変換するように要求しています。DataContractのシリアル化に何らかの影響を与える可能性のある、この変換の予期しない結果があるのではないかと思います。
更新:サーバーとクライアントは同じドメインdllを共有し、クライアントはサービスからそれらを生成しません。たぶん、質問の中で私は要点を見逃していました。オブジェクトがデータコントラクトのシリアル化によってシリアル化されるのではないかと思います。オブジェクトにIXmlSerializableを実装すると、問題が発生します。
c# - SerializableAttribute or IXmlSerializable when serializing objects with large byte arrays
Following my recent issues with large object heap fragmentation, I've revisited some of my serializable classes. I frequently do some Xml serialization and serialize/deserialize objects containing large byte arrays.
In general I just use SerializableAttribute and do not bother about serialization details until I really need some special behaviour. Then I switch to IXmlSerializable interface and write my own serialization/deserialization code.
When manually serializing byte arrays to Xml, I prefer XmlWriter.WriteBase64(byte[] buffer, int index, int count)
and XmlReader.ReadElementContentAsBase64(byte[] buffer, int index, int count)
methods. This allows me to write data in chunks - very convenient.
But what happens when I just use the SerializableAttribute
? Does the automatic serialization mechanism inside .NET framework writes data in chunks (like I do manually) or does it just kill large object heap by creating enormously large strings to hold whole of my byte array serialized with base64? Is the serializer efficient, or should I write my own serialization code to make sure the data is written without unnecessary overhead?
c# - この逆シリアル化されたものがStackOverflow例外をスローするのはなぜですか?
FooContainer(リスト)を逆シリアル化しようとすると、エラーがスローされます。このコードの最後の部分を見てください。
私は何が間違っているのですか?
c# - IXmlSerializationを使用して、Tプロパティをシリアル化するにはどうすればよいですか?
私の質問はとても簡単です。
Fooクラスがあると想像してください。Tプロパティがあります。
IXmlSerializableを実装したいのですが、問題は、標準のXmlSerializationを模倣することができないことです。標準のXmlSerlalizationのようにこのプロパティを作成する方法については本当にわかりません。
更新:私はこれをしました、そしてそれは機能していません
このクラス(A、B、C)をシリアル化したとき。私はこのようなものが欲しいです:
ファーストクラスの使用:
2番目のクラスの使用:
3番目のクラスの使用:
このようなものが私が望んでいたものです。このすべてにカスタムXmlSerializerを実装したくありません。つまり、標準のシリアル化で使用されるデフォルトを意味します。
c# - IXmlSerializable と XmlSerializer の併用の問題
私は、ポリモーフィックな継承関係で約 50 のクラスを持っています。XmlSerializer を使用してシリアル化しました。いくつかのクラスについて、IXmlSerializable を実装したいと思います。このクラスは基本クラスではなく、すべてのポリモーフィックな関係の基本クラスから直接派生します。
実装後、結果の XML には、WriteXML メソッドで記述した上記のクラスのタグのみが含まれます。他のクラスの情報はありません。非常に奇妙な行動!!!!
他のクラスの情報が維持されるように、この問題を解決する方法を教えてください。
c# - IXmlSerializable xml タグ名の変更
以下のようなコレクションを持つクラスがあります
それをシリアル化するために、以下のように WriteXML を書きました
Testcoll の場合と同様に、出力 xml に "ArrayOfInt" タグが付けられるようになりました。しかし、この名前を別の「MyCollection」に変更したいと思います。
これを達成する方法を教えてください。
c# - IXmlSerializableは、クラスで使用されたときに逆シリアル化されません
SerializableEnumは、IXmlSerializableを実装します。
SerializableEnumには、機能するFromXmlもあります。次のようになります。
私がする時:
Stockにはデータが入力されますが、CmpにはStockデータが入力されません(ReadXmlが呼び出されることはないようです)...
XmlSerializerにタイプを追加しようとしましたが(たとえば、new Type [] {typeof(SerializableEnum)})、それは役に立ちません。
ここで何が欠けていますか?ありがとう。
SerializableEnumクラスのFromXmlに追加しなければならなかったRootElementAttributeのようなものかもしれないと思います。IXmlSerializableは、列挙型が持っていたXmlRoot属性を無視したため、逆シリアル化時に追加するコードを追加しました。これをすべて一緒に機能させる別の方法はありますか?
c# - シリアル化は正しいが、デシリアライズは正しくない
次のコードとクラスを検討してください。
私がそれを実行すると、次のように xml が ser.xml に生成されます。
しかし、xml 内の要素を次のように並べ替えない限り、ファイルを正しく逆シリアル化することはできません。
serializer.UnknownAttribute
andserializer.UnknownElement
は両方の実行中に発生しないことに注意してください。
何が問題ですか?どうすれば修正できますか?
---------------EDIT----------------------問題が実装
にあることはわかっています。IXmlSerializable.ReadXml()
しかし、どのような問題があり、どうすれば治せますか?