問題タブ [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# - 基本型のコレクションをシリアル化し、読みやすいXMLで具体的な型を確認する方法
BaseTypeをサブクラス化するさまざまな具象タイプのオブジェクトが入力されたリストがあります
WCFDataContractSerializerを使用しています
これを生成する方法はありますか
?
本当の目標は、ユーザーがメモリにロードするXMLを生成できるようにすることであり、ユーザーは、元のXMLを要求しても成功しないスキルレベルにあります。
c# - サードパーティの型で WCF DataContract を作成する方法はありますか?
私は wcf に移行しており、データ コントラクトを適切に宣言する方法を理解しようとしています。私がリモートしているタイプのいくつかは、私が変更できないサードパーティからのものです。wcfでデータ契約を明示的に宣言する唯一の方法は属性ですか? 3.5 の自動データ コントラクト機能については知っていますが、私が読んでいる本ではそれを思いとどまらせています。さらに、その方法はすべての状態が公開されていることを前提としていますが、多くの場合、そうではありません。
wcf - DataContractSerializer を使用する場合の PostSharp?
クラスに INotifyPropertyChanged を実装するアスペクトがあります。この側面には、次のものが含まれます。
これは、クラスを通常どおりにインスタンス化するときには問題なく機能しますが、DataContractSerializer を使用してクラスを逆シリアル化すると問題が発生します。これは、コンストラクターをバイパスします。これは、PostSharp 自体のセットアップ方法に干渉すると推測しています。これにより、インターセプトされたプロパティ セッターで NullReferenceException が発生しますが、カスタム OnPropertySet が呼び出される前に、LocationInterceptionArgs の設定が妨げられると推測しています。
他の誰かがこの問題に遭遇しましたか? それを回避する方法はありますか?
さらに調査を行ったところ、これを行うことで問題を解決できることがわかりました。
私は、オーケー、それはそれほど悪くないと思ったので、アスペクトでこれをやろうとしました:
残念ながら、メソッドを適切にインターセプトしても機能しません。InitializeCurrentAspects の呼び出しが適切に変換されていないと考えています。これは、アスペクト拡張クラス内ではなく、アスペクト内にあるためです。アスペクトを持ちたいすべてのクラスでこれを呼び出すことを心配する必要がないように、これをきれいに自動化できる方法はありますか?
c# - DataContractSerializer 使用時のプロパティの初期値の設定
クラスをシリアライズし、後でデシリアライズする場合、シリアライズさDataContractSerializer
れていないプロパティの初期値をどのように制御できますか?
Person
以下のクラスを考えてみましょう。そのデータ コントラクトは、FirstName
およびLastName
プロパティをシリアル化するように設定されていますが、プロパティはシリアル化されていませんIsNew
。IsNew
新しい Person が新しいインスタンスとしてインスタンス化されているか、ファイルから逆シリアル化されているかにかかわらず、TRUE に初期化したいと考えています。
これはコンストラクターを介して簡単に実行できますが、私が理解しているようにDataContractSerializer
、パラメーターが必要になる可能性があるため、コンストラクターを呼び出しません。
f# - F#DataContractJsonSerializer StackOverflowException
50,000レコードのリストです(実際にはもっとたくさんありますが、小さなものから始めましょう)。JSONファイルにシリアル化しようとしています:
悪名高いStackOverflowExceptionが発生しています。正確には:
タイプ'System.StackOverflowException'の未処理の例外がFSharp.Core.dllで発生しました
何かアドバイス?
c# - DCSを使用したMessageContractのシリアル化
DataContractSerializer[MessageContract]
をSOAP経由で送信したときと同じようにシリアル化する方法はありますか?
WCF呼び出しのネットワーク上に次のように表示されるクラスがあります。
DCSを使用してシリアル化すると、次のようになります。
この不整合は、クラスがデータコントラクトではなくメッセージコントラクトとしてマークアップされているためだと確信しています。
WCFがSOAPメッセージを作成するときと同じ方法でDCSにメッセージをシリアル化させる方法はありますか?
silverlight - Silverlight: DataContractSerializer は読み取り専用のコレクション プロパティを処理できません
Silverlight プロジェクト (SL4) では、リスト ( IList<AnotherModel>
) を含む可能性のあるモデルを使用しています。グッド プラクティスとルールCA2227:CollectionPropertiesShouldBeReadOnly
によると、IList
プロパティにはパブリック セッターがありません。動作している DataContractSerializer を使用してモデルをシリアル化します。しかし、デシリアライズしようとすると、DataContractSerializer のReadObject(Stream)
メソッドによって SecurityException がスローされ、パブリック セッターがないためにターゲット プロパティ (プロパティを指しているIList
) を設定できないと不平を言います。
は封印されており、拡張可能でも柔軟でもないため、メソッドまたはコレクション項目を転送する他の方法でforeach-loop を使用しDataContractSerializer
て逆シリアル化できるような追加のルールを追加する機会は現在ありません。ILists
Add()
また、(Reflector を使用して) ソースを掘り下げてDataContractSerializer
小さなフォークを作成しようとしましたが、非常に深く掘り下げる必要があり、シリアル化クラス全体を複製することは実行可能な解決策ではないようです。
を使用してパブリック セッターを使用せずにリストをシリアル化する別の機会はありDataContractSerializer
ますか?
あなたのアイデアを事前にどうもありがとうございました!
更新
XmlSerializer を使用して解決しました。
トーマス
wcf - 列挙型、DataContracts、およびWCFの質問
私はWCFを初めて使用し、簡単な質問があります...
私のDataContractクラスは、公開されているメソッドの1つからコンシューマーに列挙型を返します。
コンシューマーは、列挙型を確認し、その型の変数をインスタンス化できます。
ただし、サービスの列挙型に[DataContract]も[EnumMember]も提供していません。
私の質問は、なぜクライアントはまだそれを見ることができるのですか?ビジネスオブジェクトと一緒にシリアル化するには、[DataContract]にする必要があると思いました。
c# - DataContractJsonSerializerをjson配列として使用してオブジェクトをシリアル化します
アイテムのリストを含むクラスがあります。DataContractJsonSerializerをjson配列として使用して、このクラスのインスタンスをjsonにシリアル化したい。例えば。
jsonにシリアル化すると、次のようになります。
[{"Name":"one","Description":"desc1"},{"Name":"two","Description":"desc2"}]