問題タブ [datacontractserializer]
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# - DataContractSerializer C# シリアル化できますが、逆シリアル化できません。なぜですか?
WCF と C# を使用してアプリケーションを作成しました。そのアーキテクチャでは、App.config を介して KnownTypes を追加する必要があります。私は次のようなサービスを持っています: Client -> CentralServer -> DataServer (ここで -> は WCF 接続です) ここで、KnownTypes を CentralServer App.config と DataServer App.config の両方に次のように追加しました。
私の問題は、CentralServer から DataServer の MethodDeclaration 型の引数を取るメソッドを呼び出すと、サービスがこのパラメーターを逆シリアル化できないという例外がスローされることです。さらに、同じように定義されたそのようなメソッドがたくさんありますが、引数として異なる型を受け入れ、それらは完全に機能します。なぜこれがこのように機能している(機能していない)のか分かりますか?
例外:
c# - DataContractSerializer が適切に逆シリアル化されず、オブジェクト内のメソッドの値が欠落している
私のいくつかのクラス
私のXMLファイル:
しかし、私の問題はクラスの問題です。逆シリアル化すると、メソッドのデータの一部しか取得できません。
したがって、「someClass」をチェックすると、FirstName の値は john になりますが、LastName は null になります。
ミステリーは、クラスのすべてのデータではなく、一部のデータを取得する方法です。そのため、デシリアライズ時に DataContractSerializer が xml からすべてのデータを取得しているわけではありません。
私は何か間違ったことをしていますか?
どんな助けでも大歓迎です。前もって感謝します。
同じ問題を抱えている人、または解決策を知っている人がいたら教えてください
serialization - DataMemberをDataContractの別の名前空間に追加する
Iを使用XmlSerializer
すると、親タイプとは異なる名前空間にメンバーを含めることができます。
同じことをすることはできますDataContractSerializer
か?
次のXMLが欲しいです:
これはで可能DataContractSerializer
ですか?
xml - 名前空間を使用した XSLT 変換 XML
XSLTを使用してXMLをHTMLに変換しようとしています。
問題:
私はそれを働かせることができません。誰かが私が間違っていることを教えてもらえますか?
XML:
XSLT:
wcf - WCF と DataContractSerializer の使用エラー
WCF を使用してシリアル化しようとしているかなり複雑なオブジェクト モデルがあります。サーバーで新しいインスタンスを作成してクライアントに返すことができるという問題が発生しています。その後、同じオブジェクトを戻そうとしたり、DataContractSerializer を使用してシリアル化しようとすると、例外がスローされます。
テスト メソッド Server.Service.Test.SerializationTest.TestFilingSerialization が例外をスローしました: System.Runtime.Serialization.SerializationException: MyNameSpace.MyObject 型のオブジェクトを逆シリアル化中にエラーが発生しました。タイプ '' のプロパティ '' の set メソッドがありません
欠落しているセッターに関する情報は提供されません。欠落しているセッターの継承階層を調べてみましたが、これを渡すことができないようです。 MyObjectは、シリアル化しようとしているオブジェクトのプロパティのタイプです。ここで面白い部分があります。そのプロパティのセッターには、次のようなコードがあります。
Aggregates.Add をコメントアウトすると、次のプロパティに移動し、そこで同じ例外がスローされます。キッカーは、同じコードで他のプロパティを通過してから、これにヒットして死ぬので、何がわからないのですか?問題が発生する可能性があります。
プロパティ名とタイプが例外に入力されていないため、実際のエラーが発生した経験は誰にでもあるため、エラーは別のものでなければならないようです。クライアントで新しいインスタンスを作成するだけなら、問題なくデシリアライズおよびシリアライズできます。何を探すべきかについてのアイデアはありますか?
編集
私は文字通りこれだけをやっています:
- インスタンスを作成
- シリアライズ
- 逆シリアル化
- 再シリアル化
- ここで死ぬ
c# - 複数の名前空間を持つDataContractSerializer
DataContractSerializerを使用してオブジェクトをXMLにシリアル化します。メインオブジェクトは、名前空間「http://personaltrading.test.com/ 」を持つSecurityHoldingであり、名前空間「 http://core.test.com 」を持つクラスであるAmountというプロパティが含まれています。これをXMLにシリアル化すると、次のようになります。
とにかくd3p1プレフィックスを制御できますか?私は何か間違ったことをしているのですか、それとも何か他のことをしているべきですか?
.net - DataContractSerializer の問題 - List から派生したオブジェクトを正しくシリアル化する方法?
次のサンプル コードを確認します。
ComplexObject<T>
から派生することに注意してくださいList<T>
。
とにかく、最後のアサーションは失敗します。[Serializable]
withを置き換えてto[CollectionDataContract]
を付けても、同じ否定的な結果が得られます。[DataMember]
m_state
クラスがコレクションであることにDataContractSerializer
気づき、他の状態を無視することを選択したかのようです。
次のことを考慮して、この問題を解決する方法を誰かにアドバイスしてください。
ComplexObject<T>
できるだけ変更を少なくしたいDataContractSerializer
この質問とは関係のない理由で立ち往生しています
よろしくお願いします。
編集:
wcf - 実行時に WCF 操作で使用されるデータ シリアライザーを取得する方法
実行時に (たとえば、操作動作を使用して) 操作 (DataContractSerializer/NetDataContractSerializer/XmlSerializer など) で使用されるデータ コントラクト シリアライザーを取得する機会はありますか。私が達成したいのは、現在接続されているシリアライザーを使用してメッセージを (メッセージ インスペクターで) シリアル化し、結果を比較する診断コードを作成することです。
ありがとう、パヴェル
c# - ソケットの複数のルート要素を介したC#DatacontractSerializer
ソケットと DataContractSerializer を使用して Sivlerlight チャット アプリケーションを作成しています。
Silverlight クライアントと C# サーバーの間で共有される定義を持つシリアル化可能なオブジェクトのクラス階層があります。
バディがログオンすると、メッセージがサーバーに送信され、確認された場合は、承認が送信され、その後に他に誰がオンラインであるかを示すいくつかのメッセージが送信されます (および他のメッセージも)。次に、クライアントはソケットで待機し、ソケットからバイトを準備します。次に、結果のバイト ストリームからオブジェクトを逆シリアル化しようとします。ただし、サーバーが複数のメッセージを送信したため、バイト ストリームには複数の要素の xml が含まれ、デシリアライズされると複数ルート例外がスローされます。
DatacontractSerializer を使用してソケットからオブジェクトのストリームを逆シリアル化するための標準的なソリューションは何ですか?
ありがとう