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

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

c# - XDocument をアプリケーション設定クラスに保存できません

オブジェクトでIXmlSerializable ReadXmlandWriteXmlメソッドを使用しようとしています ( andメソッドを使用します。XDocumentFoo.WriteTo( ... )XDocument.Load( ... )

IXmlSerializableインターフェイスを実装するクラスを、デフォルトの Application Settings クラス内に格納されている変数に格納したいと考えています。

これを行おうとすると、かなり厄介な失敗が発生します。

ここに画像の説明を入力

これは設定クラスです:

ここに画像の説明を入力

これは、

ああ、これは Program クラスです (問題を再現するために単純なコンソール アプリケーションを使用しています)。

すべての例外がオンになっているため、この例外がポップアップしますが、それらをオフにしても、ApplicationSettingsファイルはデータを取得していません。

なぜこうなった?

0 投票する
0 に答える
154 参照

c# - IXmlSerializable クラスの配列をパラメーターとして WCF に渡す方法は?

私は2つのクラスを持っています.1つは実装IXmlSerializableし、もう1つはDataContract属性を持っています:

それから私はサービスインターフェースを持っています

そして、その実装は次のとおりです。

SOAP UI は、サービスを呼び出すために必要な xml を生成しました。TestListFoo空の配列を受け取る場所への呼び出しを除いて、すべて正常に動作します

私は何が欠けていますか?私が必要とするものを達成することは可能ですか?DataContractそうでない場合、実装するクラスに属性を追加するにはどうすればよいIXmlSerializableですか?

ありがとう

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

c# - xml にインデント/改行があると、辞書のカスタム シリアル化が失敗する

Dictionary シリアライゼーションの XML をよりクリーンにするために、 を実装するカスタム クラスを作成しIXmlSerializableました。

私のカスタムクラスは次のように定義されています:

私のコードは、次の XML スニペットで動作します。

ただし、この縮小された XML がある場合、私のコードは例外をスローします。

例外は次のとおりです。

への呼び出しでスローされReadElementContentAsStringます。

コードを修正するにはどうすればよいですか?

次を使用して問題を再現できます。

0 投票する
0 に答える
22 参照

c# - 派生エンティティの xml シリアル化を行う方法

「Derived2」で連載をしています

Use the XmlInclude or SoapInclude attribute to specify types that are not known statically.との例外を与えますunable to generate xmldocument

問題は、親エンティティを制御できないため、親エンティティに xmlinclude 属性を含めることができないことです。ほとんどの派生エンティティを完全に制御できますderived2

これのシリアライゼーションを達成するための任意のソリューション。

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

c# - データ コントラクト シリアライザーを使用して IXmlSerializable オブジェクトをシリアル化するときに、ルート要素の名前空間と名前を制御するにはどうすればよいですか?

IXmlSerializableでシリアル化する を実装する型がありDataContractSerializerます。XML ドキュメントのルート要素としてシリアル化するときに、ルート要素の名前空間と名前を制御するにはどうすればよいですか?

次のタイプがあるとします。

これをDataContractSerializerルート オブジェクトとしてシリアル化すると、次のようになります。

ルート名を<Person>、ルート名前空間を にしたいので"http://www.MyCompany.com"、次のように追加してみまし[DataContract]た:

しかし、そうすると、Type 'PersonDTO' は IXmlSerializable ではなく、DataContractAttribute 属性を持つことができないDataContractSerializerという例外がスローされます。

DataContractSerializer(Type type, String rootName, String rootNamespace)手動でシリアル化するときに、コンストラクターを使用してルート名と名前空間を変更できることを知っています。

しかし、属性を介してこれを自動的に行う方法はありますか?