(5)私は非常にWCFのDataContract属性について混乱しています。私の知る限りでは、クラスのようなユーザ定義型を直列化するために使用されます。私はこのようにクライアント側で公開されている1つのクラスを書きました。DataContractとDataMemberを削除すると正しく動作します。それが適切に働いているのか理解できません。DataContract実際の使用状況を教えてください。}データコントラクト:エンティティクラスがシリアライズ処理の準備ができていることを指定します。データメンバー:特定のフィールドがデータコントラクトの一部であり、シリアル化できることを指定します。DataMember属性は、データのシリアル化に追加するために必須ではありません。DataMember属性が追加されていない場合、古いXMLSerializerはデータをシリアル化します。DataMemberを追加すると、order、name、isrequiredなどの有用なプロパティが提供されます。これは他には使用できません。httpリクエストから呼び出すと正常に動作しますが、net.tcpからあなたがこのようなものをすべて取得しようとするとデータコントラクトは、交換されるデータを抽象的に記述する、サービスとクライアントとの間の正式な合意である。データコントラクトは、明示的または暗黙的に行うことができます。int、stringなどのシンプルな型は、暗黙のデータコントラクトを持っています。ユーザー定義オブジェクトは、[DataContract]および[DataMember]属性を使用してDataコントラクトを定義する必要がある、明示的または複合タイプです。データコントラクトは次のように定義できます。サービス操作との間でやり取りされるデータの外部形式について説明します。これは、サービスメッセージで交換されるデータの構造とタイプを定義しますこれは、CLR型をXMLスキーマにマップしますデータ型の直列化と逆シリアル化の方法を定義します。シリアライゼーションにより、オブジェクトをネットワーク経由で送信できる一連のバイトに変換します。デシリアライゼーションでは、呼び出し元のアプリケーションから受け取った一連のバイトからオブジェクトを再構成します。これは、構造化データの変更を管理するためのバージョン管理システムですプロジェクトへのSystem.Runtime.Serialization参照を含める必要があります。このアセンブリは、DataContractおよびDataMember属性を保持します。SP1で[DataContract]と[DataMember]属性に圧倒されていたため、Microsoftはデータコントラクトシリアライザをすべてのクラス(古いXMLシリアライザと同じように)を処理しました。SP1では、データコントラクトまたはデータメンバー属性をもう追加する必要はありません。しなければ、XMLシリアライザのように、データコントラクティブシリアライザがクラスのすべてのパブリックプロパティをシリアル化します。これらの属性を追加しないと、多くの便利な機能が失われます。IsRequired=などの有用な属性を定義することはできません[DataMember]がなければ、特定のパブリックプロパティを削除することはできません。[DataContract]と[DataMember]属性を省略しても問題ありませんが、データクラスに追加することをお勧めします。datamemberDataContractとSerializableを一緒に使用できますか?DataContract/DataMember属性を無視するようにJSON.NETを設定する日本語Top。