問題タブ [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.
c# - エンドポイントを呼び出す前に、エンドポイントでサポートされているWCFメソッドを確認できますか?
WCFサービスコントラクトにバージョン管理の問題があり、操作のために呼び出される多くのエンドポイントの1つで、コントラクトから1つのメソッドが欠落しています。
私の質問は、コマンドを呼び出す前に、クライアントでコマンドが使用可能であることを確認するにはどうすればよいですか?
私は試した:
残念ながら、これは呼び出し元のアプリからのコントラクトを使用しており、エンドポイント自体の実装については実際には説明していません。その結果、エンドポイントがコマンドの実装に失敗した場合でも、trueを返します。
wcf - WCF DataContractSerializer の動作
DataContractSerializer を使用すると、異常な動作が見られます。次のようにメッセージ コントラクトを定義しました。
次のような XML メッセージを送信しています。
私のサービスは、期待どおりにこの XML を逆シリアル化します。私のサービス内では、DataContractSerializer を使用して XML 文字列を作成していますが、ここで奇妙なことが起こります。私は次のようにシリアライザーを使用しています:
これが完了すると、outputMessage に次の XML が含まれます。
言うまでもなく、元の XML メッセージを受信することを期待しているものは、これを解析できません。だから私は2つの質問があると思います:
- DataContractSerializer が余分な外部ノードを XML 出力に追加するのはなぜですか?
- これをやめる方法はありますか?
ありがとう。
これはおそらく.NET 4を使用していることを追加する必要があります。
c# - C# の継承 DataContract 派生型
msdn:datacontracts をよく読んでみましたが、以下が機能しない理由がわかりません。ここで何が問題なのですか?ExtendedCanadianAddress が datacontract シリアライザーによって認識されないのはなぜですか?
タイプ 'XYZ.ExtendedCanadianAddress' とデータ コントラクト名 'CanadianAddress: http://tempuri.org/Common/Types ' は想定されていません。たとえば、KnownTypeAttribute 属性を使用するか、DataContractSerializer に渡される既知の型のリストにそれらを追加することにより、静的に認識されていない型を既知の型のリストに追加します。
与えられた:
wcf - WCF サービスで使用できる DataContract の数に制限はありますか?
WCF3.5SP1、VS2008 を使用。約 10 個のサービス メソッドを公開する WCF サービスを構築します。サービスで使用される約 40 の [DataContract] タイプを定義しました。[DataContract] 型をプロジェクトに (他の既存の型と同じ名前空間で) 追加すると、適切に公開されないことがわかりました。新しいタイプは、WSDL で生成された XSD スキーマにはありません。既存の (そして機能する) タイプをコピーして名前を変更するところまで行ってきましたが、生成された WSDL/XSD にも存在しません。
2 つの異なる開発者マシンでこれを試しましたが、同じ問題です。
サービスの [DataContract] として公開できる型の数に制限はありますか? 名前空間ごと?
c# - C# で JSON を使用する方法について混乱している
JSONでのC# の使用に関するほぼすべての質問に対する答えは、「JSON.NET を使用する」であるように思われますが、それは私が探している答えではありません。
私がそう言う理由は、私がドキュメントで読むことができたすべてのものから、JSON.NET は基本的に、.NET フレームワークに組み込まれた DataContractSerializer のより優れたパフォーマンスのバージョンであるということです...
つまり、JSON 文字列をデシリアライズしたい場合は、すべてのリクエストに対して厳密に型指定された完全なクラスを定義する必要があります。したがって、カテゴリ、投稿、作成者、タグなどを取得する必要がある場合は、これらすべてに対して新しいクラスを定義する必要があります。
クライアントを構築し、フィールドが何であるかを正確に知っている場合、これは問題ありませんが、他の誰かの API を使用しているため、サンプルの応答文字列をダウンロードして JSON 文字列から手動でクラスを作成しない限り、コントラクトが何であるかわかりません。 .
それが唯一の方法ですか?json["propertyname"] で読み取ることができる一種のハッシュテーブルを作成する方法はありませんか?
最後に、自分でクラスを作成しなければならない場合、API が変更され、変更が通知されない場合はどうなりますか (Twitter では悪名高いようです)。入ってオブジェクトのプロパティを更新するまで、プロジェクト全体が壊れると思います...
では、JSON を扱うときの一般的なワークフローとは正確にはどのようなものでしょうか? そして、一般的には、ライブラリに依存しないことを意味します。特にターゲットライブラリに対してではなく、一般的にどのように行われるかを知りたい...
wcf - WCF-インターフェイスから継承するDataContract
IIdentityから継承するWCFインターフェイスの一部としてデータコントラクトがあります。
このサービスは、AuthenticationIdentityオブジェクトを正常に返します。ただし、クライアントで明らかなキャストを実行しようとすると、次のようになります。
AuthenticationIdentityをIIdentityにキャストできないという苦情があります。私はServiceKnownTypesをインターフェースに追加しようとしました:
しかし、それでも運はありません。何か案は?
c# - WCF では、複数の操作コントラクトを持つ方が良いですか、それともポリモーフィック データ コントラクトを使用する操作を 1 つだけ持つ方が良いですか?
WCF では、複数の操作コントラクトを使用する方が良いのか、ポリモーフィック データ コントラクトを使用する操作コントラクトを 1 つだけ持つ方が良いのか疑問に思っていました。
ちょっとした例を挙げましょう:
また
アクション コントラクトは、action1Contract と action2Contract の両方が継承する抽象クラスになります。アクション コントラクトはdo()
、そのインターフェイスでメンバー関数を指定し、子クラスでオーバーロードする必要があります。
個人的には、派生した actionContract でデータとアクションを適切にカプセル化でき、新しいアクションを簡単に追加できるため、2 番目のアプローチの方が興味深いと思います。しかし、私が WCF を使用するのは初めてなので、おそらくよく知っているでしょう!
json - Asp.Net MVC 2: クライアント側の JavaScript とデータ コントラクトを共有する方法はありますか?
次のものがある場合:
- ビュー モデルを定義するオブジェクト クラスを持つ Asp.Net MVC 2 プロジェクト。
- JSON を使用して、これらのモデルを Web ブラウザー クライアントにシリアル化します。
- クライアントは、請求書の注文明細などの情報をオブジェクトに追加します。
- クライアントは処理のためにオブジェクトをサーバーに送り返します。
JSON オブジェクトのデータ コントラクトをクライアントと共有する方法はありますか? サーバーが Order ファクトリを使用して Order を作成し、それをクライアントに送信することを本当に望んでいます。クライアントは、データ コントラクトを使用して注文明細行を追加し、完全に入力されたオブジェクトを JSON として送り返します。
私は本当にクライアントでJavaScriptで次のことをしたいと思っています:
Asp.Net MVC 2 への例や Web ページへのリンクは非常に役立ちます。
linq-to-sql - LINQ To SQL オブジェクト拡張メソッドのクローンを作成すると、オブジェクト破棄例外がスローされる
LINQ To SQL オブジェクトを複製するための拡張メソッドがあります。
しかし、すべての参照がロードされていないオブジェクトを運ぶ間、DataLoadOptions でクエリを実行しているときに、オブジェクトが破棄された例外がスローされることがありますが、ロードされていない参照 (null) は要求しません。
たとえば、多くの参照を持つ Customer があり、Address 参照 EntityRef<> をメモリに保持する必要があるだけで、他には何もロードしません。しかし、オブジェクトのクローンを作成している間、この例外により、すべての EntitySet<> 参照を Customer オブジェクトでロードする必要があり、負荷が大きすぎてアプリケーションの速度が低下する可能性があります。
助言がありますか?
.net - 抽象クラスでのWCFの使用
WCFで抽象クラスのDataContractを定義するにはどうすればよいですか?
WCFを使用して正常に通信するクラス「Person」があります。次に、Personから参照される新しいクラス「Foo」を追加します。すべてまだ良いです。しかし、Fooを抽象化し、代わりにサブクラスを定義すると、失敗します。サーバー側ではCommunicationExceptionで失敗しますが、それはあまりわかりません。
テスト用に作成された簡略化されたクラス: