問題タブ [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.
wcf - DataContractシリアル化-基本クラスのプロパティ名が機能しない
私は次のような基本クラスを持っています:
次に、これから派生したクラスがたくさんあります。その一例を次に示します。
ここでシリアル化されると、出力は次のようになります。
基本クラスのDataMember属性で指定した名前でIDプロパティがシリアル化されないのはなぜですか?
serialization - DataContractSerializer をより安全にする方法は?
最近、開発者の 1 人が、データ メンバーとしてマークされていないオブジェクトをデータ コントラクトに追加したというシナリオに遭遇しました。DataContractSerializer を使用して、制御しているハードウェアの構成ファイルを保存しています。明らかに、シリアル化操作は成功しませんでした。
これにより明らかになった主な問題は、プロセス中に構成ファイルが破壊されたことです。オブジェクトグラフをシリアル化する前に、オブジェクトグラフがシリアル化されることを確認する方法を知っている人はいますか?
シリアル化例外からのスタック トレースは、XmlObjectSerializerContext.CheckIfTypeSerializable(..) への呼び出しで失敗します。シリアル化を試みる前に使用できるこのようなものがあるかどうか疑問に思っています。
グラフをメモリにストリーミングしてからファイルにストリーミングする必要は避けたいのですが、これでうまくいくと思います...
助言がありますか?
wcf - DataContractSerializer によって読み取られる XML の順序は重要ですか?
次のコードがあります。
ケース 1 では FullName プロパティはデシリアライズされませんが、ケース 2 では適切にデシリアライズされます。なんで?
.net - 汎用 WCF JSON 逆シリアル化
私は WCF に少し慣れていないので、私がやろうとしていることを明確に説明しようとします。
JSON 要求を使用する WCF Web サービスがあります。ほとんどの場合、JSON の送受信は正常に行われています。たとえば、次のコードは正常に機能し、期待どおりに機能します。
JSON 送信:
WCF:
これにより、期待どおり「Dave」を含む JSON オブジェクトが返されます。問題は、受け取った JSON が DataContract のメンバーと正確に一致することを常に保証できるとは限らないことです。たとえば、JSON:
大文字と小文字が一致しないため、正しくシリアライズされません。guy.FirstName は null になります。この動作は理にかなっていますが、これを回避する方法がよくわかりません。クライアントでフィールド名を強制する必要がありますか、またはサーバー側で調整する方法はありますか?
おそらく関連する質問: 一般的な JSON オブジェクトを受け入れて、StringDictionary または何らかの単純なキー値構造にシリアル化できますか? では、JSON で送信されたフィールド名に関係なく、送信された名前と値にアクセスできますか? 現在、受け取ったデータを読み取る唯一の方法は、事前定義された DataContract と正確に一致する場合です。
c# - モノラルでの逆シリアル化の問題
C#のデータコントラクトシリアライザーによって生成された次のXMLが、Windowsでは正常に機能するのにLinux on Monoでは機能しない理由を誰かが知っていますか?
XML:
エラー:
リストされているサービスがない場合にもエラーが発生します(xmlタグ<services/>
)。services変数のタイプはList<Service>
。これはMonoでは処理できないタイプですか?別のタイプがより適切でしょうか?それともまったく別のものですか?
wcf - 匿名タイプのインスタンスをWCF経由で渡す
オブジェクトを予期し、リフレクションを使用してそのプロパティを取得するWCFサービスメソッドがあります。
クライアント側では、匿名型のオブジェクトを作成します
それをメソッドに渡します。例外が発生します:
明示的に宣言された型やプロパティが実際にはないため、型またはそのメンバーをシリアル化属性でマークすることはできません。その問題を克服する方法はありますか?
c# - WCF は、"set" のないプロパティでチョークします。回避策はありますか?
サービスメソッドの結果として渡すクラスがあり、そのクラスには取得専用プロパティがあります。
サービス側で例外が発生しています:
System.Runtime.Serialization.InvalidDataContractException: タイプ 'MyNamespace.ErrorBase' のプロパティ 'Message' の設定メソッドがありません。
このプロパティはゲッターとしてのみ使用する必要があり、ユーザーが値を割り当てることはできません。私が使用できる回避策はありますか?または、追加の属性が不足していますか?
wcf - WCF-継承された型のシリアル化
私はこれらのクラスを持っています:
クラスResponseFileInquiryのインスタンスは、私のサービスメソッドがクライアントに返すものです。ここで、ResponseFileInquiry.errorsにErrorBaseのインスタンスを入力すると、すべて正常に機能しますが、継承されたタイプFileMissingErrorのインスタンスを追加すると、シリアル化中にサービス側の例外が発生します。
そのため、シリアライザーは、リストに宣言された型オブジェクト(ErrorBase)が含まれていることを期待しているが、継承された型(FileMissingError)オブジェクトを取得しているために混乱しています。
たくさんのエラータイプがあり、リストにはそれらの組み合わせが含まれているので、それを機能させるために何ができますか?
c# - XML シリアル化と名前空間プレフィックス
クラスを XML にシリアル化して名前空間を追加できる C# の方法を探していますが、その名前空間が使用するプレフィックスを定義します。
最終的に、次の XML を生成しようとしています。
DataContractSerializer
と の両方でXmlSerializer
名前空間を追加できることはわかっていますが、制御できないもので内部的にプレフィックスを生成しているようです。これらのシリアライザーのいずれかで制御できますか (どちらも使用できます)?
名前空間の生成を制御できない場合、独自の XML シリアライザーを作成する必要があります。
serialization - datacontract シリアライゼーションはリフレクションを使用しますか?
XmlSerialization は、クラスごとにシリアライザー プロキシを作成します。プロキシは別のアセンブリに存在するため、パブリック フィールドのみをシリアル化できます。
DataContract シリアル化では、プライベート フィールドもシリアル化できます。リフレクションを使用しているということですか?プロキシを使うより遅くないですか(初回以外)?