問題タブ [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 - データコントラクトで継承された型を消費するSilverlightWCFサービス
SilverlightでWCFサービスを利用しようとしています...
私が行ったことは、データコントラクト用に2つの別々のアセンブリを作成することです...
.Net3.5に対してビルドされたデータコントラクトでマークされたすべてのタイプを含むアセンブリ
1番目のアセンブリのファイルにリンクするSilverlightアセンブリ。
これは、.Netアプリがアセンブリ1とSilverlightアプリアセンブリ2を参照できることを意味します。これは正常に機能し、サービス全体で通信できます。
継承されたクラスを転送しようとすると、問題が発生します。私は次のクラス構造を持っています...
IFlight-すべてのタイプのフライトのインターフェース。
BaseFlight:IFlight-ベースフライトフライトはIFlightを実装します
AdhocFlight:BaseFlight、IFlight-アドホックフライトはbaseflightを継承し、IFlightも実装します。
サービス全体でベースフライトを正常に転送できます。ただし、多くの種類のフライトを転送できる1つの運用契約が必要なため、インターフェイスを介してIFlightのオブジェクトを転送できる必要があります...
...うまくいくべきだと思いますか?
ただし、エラーが発生します。
「サーバーは意味のある応答を提供しませんでした。これは、契約の不一致、セッションの早期シャットダウン、または内部サーバーエラーが原因である可能性があります。」
任意のアイデアをいただければ幸いです。
c# - 複数のサービスと名前空間の問題がある WCF
いくつかの WCF サービスを作成しました。引数として、それらはService1およびService2と呼ばれます。
どちらのサービスも (ある時点で、おそらくオブジェクト内の関係を通じて) Customerオブジェクトを返します。
テストのために、Service1 と Service2 の両方にGetCustomer()メソッドを追加し、基本的な WinForms アプリケーションで両方のサービスへのサービス参照を追加しました。
Service1Client proxy1 = new Service1Client();
顧客 customer1 = proxy1.GetCustomer(); ///
^^^^^^ あいまいな参照です。WcfTestClient.Service1.Customer という名前にする必要があります。
Service2Client proxy2 = 新しい Service2Client();
顧客 customer2 = proxy2.GetCustomer();
^^^^^ あいまいな参照です。WcfTestClient.Service2.Customer という名前にする必要があります。
問題は、Service1とService2によって返される Customer オブジェクトが両方とも同じ種類の Customer (WcfTestService.Customer) であることです。これを解決するには、Customer だけでなく完全なアセンブリ名を含める必要があります。
データ コントラクトを別のアセンブリにコンパイルできるというスタック オーバーフローに関する投稿をいくつか読みましたが、Java などの他の言語を使用しているクライアントで問題が発生する可能性があるため、この考えは特に好きではありません。
私が見た別の解決策は SvcUtil.exe メソッドですが、各サービスの Util を個別に実行する必要があるため、この解決策は名前空間の問題に対処していません。
誰かが役に立つ提案を持っている場合は、連絡してください!
wcf - DataContractシリアル化-基本クラスのプロパティ名が機能しない
私は次のような基本クラスを持っています:
次に、これから派生したクラスがたくさんあります。その一例を次に示します。
ここでシリアル化されると、出力は次のようになります。
基本クラスのDataMember属性で指定した名前でIDプロパティがシリアル化されないのはなぜですか?
.net - XSD から DataContract を生成する
できればxsd.exe ツールDataContract
を使用して、XSD ファイルからを生成できるようにしたいと考えています。各アイテムにandを自動生成する最も簡単な方法は何ですか?[DataContract]
[DataMember]
または、より良いアプローチがありますか?XSD ファイルが変更および再生成されるたびにデータ コントラクトを再作成する必要がないようにしています。
serialization - XMLシリアル化-この方法でモデルをシリアル化することは可能ですか?
私は次のモデルを持っています:
だから基本的に私は次のことができるようになりたいです:
シリアル化すると、次のようになります。
私はDataContractsとXmlSerializerをいじってみましたが、それを行う方法を見つけることができません。
wcf - コードから WCF DataContracts を動的に作成する
私は完全に動的なオブジェクト モデルを持っているという事実を考えると、つまり、コードのどこにも具体的なクラスが定義されていませんが、操作で使用できるように、それらの WCF DataContract を作成できるようにしたいと考えています。どうすればこれを達成できますか?
私の具象クラス「Entity」は、さまざまなプロパティを外部に提示するために使用される ICustomTypeDescriptor を実装していますが、WCF での私の実験では、WCF が ICustomTypeDescriptor を気にしないことが示唆されています。これは正しいですか、それとも何か見逃していますか?
これは可能ですか?DataContract を作成する唯一の方法は、具体的なハードコーディングされたクラスを実際に持つことではありませんか?
wcf - 2つのWCFサービスが同じデータコントラクトをSilverlightクライアントに返します
論理的に異なる2つのWCFサービスがあり、それらを分離したいと考えています。それぞれに、同じデータコントラクトを返す操作があります。1つのSilverlightクライアントが両方のサービスを消費します。Silverlightクライアントのサービス参照を各サービスに追加すると、生成されたコードで単一のデータコントラクトが2回終了します。両方のサービス参照でデータコントラクトの同じ定義を使用することは可能ですか?
私が読んだことから、Silverlight以外のクライアントの場合、サーバーとクライアントの両方によって参照される個別のアセンブリにデータコントラクトをコンパイルすることで可能です。ただし、これはSilverlightでは不可能です(少なくともSilverlight 3では)。
ありがとう、
ロブ
wcf - 匿名タイプのインスタンスをWCF経由で渡す
オブジェクトを予期し、リフレクションを使用してそのプロパティを取得するWCFサービスメソッドがあります。
クライアント側では、匿名型のオブジェクトを作成します
それをメソッドに渡します。例外が発生します:
明示的に宣言された型やプロパティが実際にはないため、型またはそのメンバーをシリアル化属性でマークすることはできません。その問題を克服する方法はありますか?
wcf - 同じデータ コントラクトを参照する複数の WCF サービス
共通のデータ コントラクト (または必要に応じてエンティティ) を共有する一連の WCF サービスを構築しています。これらは、DataContract および DataMember 属性で修飾された単純なデータ転送オブジェクトです。名前と名前空間を明示的に指定しています。サービス契約ごとに平均 12 メンバーという IDesign の推奨事項に従うために、私はサービス プロジェクトを複数のサービスに分割しています。
私のデータ コントラクトは、クライアントが .Net を使用している場合に提供できる別のアセンブリにあります。参照されたアセンブリで型を再利用するようにサービス参照に指示できます。ただし、.net を使用しておらず、同じエンティティを使用する 2 つのサービスを使用している場合、あいまいな参照メッセージが表示されると思います。データ コントラクト dll を参照しない場合、Visual Studio でこれを確認できます。
私の質問は、私のサービスでできることはありますか、またはクライアント アプリで、データ コントラクトがどのプロキシから来たかを修飾する必要を回避するためにできることはありますか?
serialization - datacontract シリアライゼーションはリフレクションを使用しますか?
XmlSerialization は、クラスごとにシリアライザー プロキシを作成します。プロキシは別のアセンブリに存在するため、パブリック フィールドのみをシリアル化できます。
DataContract シリアル化では、プライベート フィールドもシリアル化できます。リフレクションを使用しているということですか?プロキシを使うより遅くないですか(初回以外)?