問題タブ [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# - XDocument をアプリケーション設定クラスに保存できません
オブジェクトでIXmlSerializable
ReadXml
andWriteXml
メソッドを使用しようとしています ( andメソッドを使用します。XDocument
Foo.WriteTo( ... )
XDocument.Load( ... )
IXmlSerializable
インターフェイスを実装するクラスを、デフォルトの Application Settings クラス内に格納されている変数に格納したいと考えています。
これを行おうとすると、かなり厄介な失敗が発生します。
これは設定クラスです:
これは、
ああ、これは Program クラスです (問題を再現するために単純なコンソール アプリケーションを使用しています)。
すべての例外がオンになっているため、この例外がポップアップしますが、それらをオフにしても、ApplicationSettings
ファイルはデータを取得していません。
なぜこうなった?
c# - IXmlSerializable クラスの配列をパラメーターとして WCF に渡す方法は?
私は2つのクラスを持っています.1つは実装IXmlSerializable
し、もう1つはDataContract
属性を持っています:
それから私はサービスインターフェースを持っています
そして、その実装は次のとおりです。
SOAP UI は、サービスを呼び出すために必要な xml を生成しました。TestListFoo
空の配列を受け取る場所への呼び出しを除いて、すべて正常に動作します
私は何が欠けていますか?私が必要とするものを達成することは可能ですか?DataContract
そうでない場合、実装するクラスに属性を追加するにはどうすればよいIXmlSerializable
ですか?
ありがとう
c# - xml にインデント/改行があると、辞書のカスタム シリアル化が失敗する
Dictionary シリアライゼーションの XML をよりクリーンにするために、 を実装するカスタム クラスを作成しIXmlSerializable
ました。
私のカスタムクラスは次のように定義されています:
私のコードは、次の XML スニペットで動作します。
ただし、この縮小された XML がある場合、私のコードは例外をスローします。
例外は次のとおりです。
への呼び出しでスローされReadElementContentAsString
ます。
コードを修正するにはどうすればよいですか?
次を使用して問題を再現できます。
c# - 派生エンティティの xml シリアル化を行う方法
「Derived2」で連載をしています
Use the XmlInclude or SoapInclude attribute to specify types that are not known statically.
との例外を与えますunable to generate xmldocument
問題は、親エンティティを制御できないため、親エンティティに xmlinclude 属性を含めることができないことです。ほとんどの派生エンティティを完全に制御できますderived2
。
これのシリアライゼーションを達成するための任意のソリューション。
c# - データ コントラクト シリアライザーを使用して IXmlSerializable オブジェクトをシリアル化するときに、ルート要素の名前空間と名前を制御するにはどうすればよいですか?
IXmlSerializable
でシリアル化する を実装する型がありDataContractSerializer
ます。XML ドキュメントのルート要素としてシリアル化するときに、ルート要素の名前空間と名前を制御するにはどうすればよいですか?
次のタイプがあるとします。
これをDataContractSerializer
ルート オブジェクトとしてシリアル化すると、次のようになります。
ルート名を<Person>
、ルート名前空間を にしたいので"http://www.MyCompany.com"
、次のように追加してみまし[DataContract]
た:
しかし、そうすると、Type 'PersonDTO' は IXmlSerializable ではなく、DataContractAttribute 属性を持つことができないDataContractSerializer
という例外がスローされます。
DataContractSerializer(Type type, String rootName, String rootNamespace)
手動でシリアル化するときに、コンストラクターを使用してルート名と名前空間を変更できることを知っています。
しかし、属性を介してこれを自動的に行う方法はありますか?