問題タブ [netdatacontractserializer]
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# - NetDataContractSerializer と CLR 型
以下の NetDataContractSerializer msdn 状態について
「NetDataContractSerializer は、シリアル化と逆シリアル化の両方の端が同じ CLR 型を共有している場合にのみ使用できます」。
私の理解では、NetDataContractSerializer を使用して .net4.0 でファイルをシリアル化し、後ですべてのコードを .net4.5 にシフトした場合、.net 4.0 のファイルはコードが同じであっても逆シリアル化されません。
私の理解が間違っている場合は修正してください。
c# - シリアル化された ASP.NET WebAPI オブジェクトの xml 配列要素名を変更します
WebAPI コントローラーでオブジェクトのリストを返すときに、カスタム ルート xml 要素を出力するのに苦労しています。
私のコントローラーメソッドは次のようになります。
次のような xml 出力をレンダリングします。
<ArrayOfProduct>に変更したいのですが、変更する<Products>方法が見つかりません。
DataContractとDataMember属性のさまざまなバリエーションを試しましたが、役に立ちませんでした。
List<Product>オブジェクトを新しいクラスにラップして代わりに返す以外に、私がやりたいことをする方法があるかどうか誰かが知っていますか?
.net - NetDataContractSerializer で Serializable をテストするには?
コードで NetDataContractSerializer によって型がシリアライズ可能かどうかをテストする方法はありますか? NetDataContractSerializer を内部で使用するジェネリック クラスを作成しており、コンストラクターが処理できない型で使用しようとすると、コンストラクターで例外をスローしたいと考えています。
c# - LinqToSqlオブジェクトとシリアル化の問題
オブジェクトグラフをシリアル化しようとしています。エンティティセットである子エンティティをロードする必要があるまでは機能します。システムはそれをシリアル化することを許可しません...それは私にこのエラーを与えます:
タイプ'System.Data.Linq.EntitySet`1[NetDataContractSerializerTest.JobService]'はシリアル化できません。DataContractAttribute属性でマークを付け、シリアル化するすべてのメンバーをDataMemberAttribute属性でマークすることを検討してください。タイプがコレクションの場合は、CollectionDataContractAttributeでマークすることを検討してください。サポートされている他のタイプについては、Microsoft.NETFrameworkのドキュメントを参照してください。
これが私が使用しているコードです:
削除した場合
dataloadOptions.LoadWith(j => j.JobServices)
データは、JNテーブルとnhテーブルをそのままにしてシリアル化されます。しかし、私が置くとき
dataloadOptions.LoadWith(j => j.JobServices)
戻ってエラーが発生します。
個人的には、JobServicesにToList()を追加する必要があると思いますが、残念ながらできません。
dataloadOptions.LoadWith(j => j.JobServices.ToList())
これはエラーをスローします。
何か案は?
c# - .NetDataContractSerializerで「http://www.w3.org/2001/XMLSchema-instance」名前空間を使用しないようにする
.NET4.0で.NETのDataContractSerializerを使用してXMLに変換する一連のクラスがあります。シリアル化は正常に機能しており、XMLを解析して、後で問題なく.NETオブジェクトを再作成できます。
ただし、ほとんどのDataMemberは必須ではありません。[DataMember(IsRequired = false)]。これは、XMLの逆シリアル化に最適です。この場合、ドキュメントからXMLノードを見逃す可能性がありますが、既存のオブジェクトをXMLにシリアル化する場合、DataContractSerializerは、null値を持つプロパティを属性を持つノードとして書き出すことを要求します。
からシリアル化できます
ただし、オブジェクトをシリアル化すると、次のようになります。
データがnull値の場合に、代わりにノードを書き込まないようにDataContractSerializerを取得する方法はありますか?
c#-4.0 - NetDataContractSerializer が無効な XML を生成する
私の NetDataContractSerializer は混乱しているようです: XML の末尾が 2 回表示されます:
ご覧のとおり、深刻などもりが発生しています。時折発生し、エラーを再現できません。何か案は?ファイルの書き込み中にVSで開かれているファイルが原因でしょうか?
次のようにオブジェクトをシリアル化します。
シリアル化されたクラスは次のようになります。
ありがとうございました!
c# - NetDataContractSerializer を使用した列挙型のシリアル化
私は次のものを持っています:
そして、クライアントサーバーwcfでフォルトと例外を変換するために次を使用しています: フォルトを例外に変換する
問題は、これで例外を障害に変換するときです:
列挙型はシリアル化されておらず、逆シリアル化すると、列挙型のデフォルト値が取得されます。
私は何が欠けていますか?
wcf - OperationContract 内のオブジェクトを持つ wcf シリアライザーとしての protobuf-net
wcf を使用するプロジェクトがあります。現在、NetDataContractSerializer を使用しています。protobuf-net に移行したい。私のサービスには以下の契約があります:
戻り値の型がオブジェクトである契約の GetRemoteProperty メソッドを呼び出そうとするまで、うまくいきます。私が見つけたサーバートレースを使用すると、そのサーバーは次のメッセージで爆発します
パラメータhttp://www.mersoft.am/Remoting:GetRemotePropertyResultをシリアル化しようとしているときにエラーが発生しました。InnerException メッセージは、データ コントラクト名が 'ArrayOfInstanceIdentifier:Mersoft.Remoting' の 'Type 'Mersoft.Remoting.InstanceIdentifier[]' ではありません。DataContractResolver の使用を検討するか、既知の型のリストに静的に認識されていない型を追加します。たとえば、KnownTypeAttribute 属性を使用するか、DataContractSerializer に渡される既知の型のリストにそれらを追加します。詳細については、InnerException を参照してください。
それで、どうすれば修正できますか?
c# - 欠落している要素のデシリアライズ中にエラーが発生しました
NetDataContractSerializerシリアライゼーション/デシリアライゼーションに使用しています。Employee オブジェクトを含む辞書をシリアル化しました
今、私は従業員オブジェクトを変更し、ブール値フィールド IsManager を含めました。
しかし、xml のデシリアライズ中に以下のエラーが発生します。
行 1 の位置 1676 にエラーがあります。名前空間 ' http://schemas.datacontract.org/2004/07/ ..'からの 'Element' ' x003C ....' は想定されていません。要素 ' x003C ....' が必要です。
[DataMember(IsRequired = false)]IsManager フィールドの属性と同様に試しまし[XmlElement(IsNullable=true)]たが、問題は解決しませんでした。
従業員クラス
Employee クラスはディクショナリでシリアル化され、ディクショナリ (xml) から読み取られます。以下のコードを使用しています。