問題タブ [datacontract]
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 の WCF 再配置
これは、完全に機能する WCF Hello World プログラムです。つまり、例外なしでこのプログラムを実行できます。
ご覧のとおり、AccountInfo - データ コントラクトはクライアントとホストの両方で共有されます。
ホスト/サービス側とのみデータ コントラクトを保持する必要があります。
クライアントは、DataContracts のインターフェース ( などIAccountInfo
) のみを表示する必要があります。
を導入するには、プログラムをどのように変更すればよいIAccountInfo
ですか?
c# - WCF: json で必要なプロパティのみを返す
パフォーマンス チューニングのため、必要なプロパティのみを返したいと思います。可能性/回避策はありますか? 理解するための疑似/サンプルコード:
そしてサービス:
wcf - WCF: 文字列データメンバーを int としてデシリアライズする
私は本当にこれを理解することはできません!(可能であれば)。WCF サービスから製品情報を受信しています。製品のデータ契約には、文字列として定義されている (実際には整数である) メンバーがいくつかありますが、それらを整数として処理したいと考えています。
クライアント側のコントラクトのデータ型を string から int に変更すると、問題は解決します。ただし、一部の製品には string.Empty 値があり、int に逆シリアル化することはできません。とにかくこのあたりはありますか?逆シリアル化後に結果セットを変換したくない...
wcf - WCF DataContract - マーキング メンバー IsRequired=false
私は次のように契約しています。
とはIsRequired
どういう意味ですか? IsRequired=false
のインスタンスMyObj
をunitializedを使用して渡すことができるということですか、それとも、インスタンスを使用せずにワイヤーを介してStrB
渡すことができるということですか?MyObj
StrB
MyObj
後者の場合、実際にどのようにインスタンス化して +なしのインスタンスに送信しますStrB
か?
wcf - IXmlSerializable を実装するクラスから WCF WSDL で processContents="lax" を回避する方法は?
コントラクトファーストの方法で書かれた wcf サービスがあります。スキーマ内の一部の要素は属性を使用するため、このためのカスタム シリアル化を作成する必要がありました (を使用IXmlSerializable
)。以下は、スキーマ、クラス、および wsdl 出力からのスキーマのスニペットです。
私の問題は、IXmlSerializable クラスの xsd をレンダリングしても、スキーマが wsdl に含まれていないことです。で参照されているだけprocessContents="lax"
です。サービスの利用者はウィザードを使用してクライアントを作成できないため、これは問題のようです。
誰かがこの問題に遭遇しましたか? これを回避するために wsdl 出力を制御する方法はありますか。メッセージ コントラクトとデータ コントラクトの両方を使用しても同じ動作が発生します。
コレクションとアイテムのスキーマ:
コレクションクラス:
アイテムクラス:
サービスによってレンダリングされる xsd:
c# - カスタム クラスを返す WCF サービスが Reference.cs でエラーを生成する
Visual Studio 2008 に約 12 個のメソッドを含む WCF サービス プロジェクトがあり、そのうちのいくつかは bool や string などのプリミティブ型を返します。また、公開された WCF サービスを参照する Visual Studio ユニット テスト プロジェクトもあります。すべての戻り値の型がプリミティブである場合、テスト プロジェクトは正常にコンパイルされます。
カスタム クラスを返す新しいメソッドをサービスに追加して公開し、テスト プロジェクトでサービス参照を更新すると、コンパイルされません。エラーは次のとおりです。 -
- タイプ 'PublisherFaultException' には、'Reason' の定義が既に含まれています。
- タイプ「PublisherFaultException」には、「PropertyChanged」の定義がすでに含まれています。
- タイプ 'Publisher.Test.LibraryReference.PublisherFaultException' は、同じパラメーター タイプを持つ 'RaisePropertyChanged' というメンバーを既に定義しています。
自動生成された reference.cs ファイルにすべて含まれています。
WCF サービスのメソッドのコントラクトは次のとおりです。
Page クラスには DataContract 属性があり、そのパブリック プロパティには DataMember 属性があります。
サービスが更新されるたびにこれを行う必要があるため、Reference.cs ファイルを変更するのは気が進まない。
なぜこれが起こっているのか知っている人はいますか?
スチュアート。
c# - DataContract を使用して XML 属性を追加する方法
シリアライズしている単純なクラスがあります。
これにより、次の XML が除外されます。
私が欲しいのは:
XML 要素に属性を追加するにはどうすればよいですか?
前もって感謝します。
serialization - DataMemberをDataContractの別の名前空間に追加する
Iを使用XmlSerializer
すると、親タイプとは異なる名前空間にメンバーを含めることができます。
同じことをすることはできますDataContractSerializer
か?
次のXMLが欲しいです:
これはで可能DataContractSerializer
ですか?
c# - WCF: 両側で等しい DataContracts を強制する
接続の両側の DataContracts がまったく同じであることを WCF に確認させることが可能かどうか疑問に思っています (そうでない場合は、接続しようとすると例外がスローされます)。
たとえば、次のサービスを想像してください。
ここで、サービスが更新され、新しい状態 "Orange" がサポートされるようになったとします。上記のように、クライアントにはまだ DataContract があります。
クライアントとサービスが同じ DataContract を使用していないため、クライアントからサービスへのすべての呼び出しが失敗するようになりました。これは可能ですか?
助けてくれてありがとう!
wcf - 抽象DataMember配列を使用したWCFDataContract
このシナリオを機能させることはできません。これがパターンです-
私は、KnownTypeまたはKnownServiceTypeを使用して、実質的にすべてに注釈を付けようとしましたが、役に立ちませんでした。
BaseTを抽象化すると、逆シリアル化エラーが発生します'抽象クラスをインスタンス化できません'。BaseTを具体的にすると、逆シリアル化エラーは発生しません。代わりに、それをChildTにキャストしようとすると、「タイプ'BaseT[]'のオブジェクトをタイプ'ChildT[]'にキャストできなくなります。