問題タブ [contract]
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.
java - 標準のJavaコントラクトのリスト
私は、私の友人がJavaを紹介するためのチュートリアルの小さなシリーズを書いています。彼らはプロのプログラマーであり、優れたプログラマーです。基本的に、当店はProgress 4GLを実行しており(少し投げただけです)、単純にひどいコードベースを継承しています。近い将来、これらの不十分に記述されたモジュールの一部をJavaサービスに置き換えることを望んでいます。
Javaが重要なことの1つは、コントラクトです。Javaで最も一般的なコントラクトのコンパイル済みリストはありますか?等しい契約のようなものがそこにあることを期待します。
wcf - ソースまたはアクション URL が異なる操作コントラクト
当社のサードパーティ API は 2 つの異なる Web サービスを提供しますが、メソッドとモデルは同じです。それにもかかわらず、それらは URI (Web サービス パス、アクション パス [操作コントラクト]) のみが異なります。
だから私はすることにしました:
VS を使用して wsdl からコードを生成します。
名前空間を編集して同じものを使用し、「共通」にし、代わりにサービス参照を使用しないように、Reference.cs編集コードを使用します。
使用するサービスの正しい URI を処理する新しいプロキシを作成します (内部に Reference.cs をラップします)。
現在、「Method1」に問題があります。アクション名が異なるためです。次の例外があります。
「サーバーは HTTP ヘッダー SOAPAction の値を認識しませんでした: http://www.api.com/service/Method1」
正しいアクション名はhttp://www.api.com/service1/Method1です。
ここでの質問は、各サービスの各メソッドのアクション名を修正するために使用できる構成または動作はありますか?
それとも、API の実装ごとにコントラクトを追加し続ける限り、それぞれのコントラクトを追加し続けて、これに ChannelFactory を使用する必要がありますか?
助けてください、ありがとう。
.net - Contract.RequiresとContract.Require
Microsoftが.NET4のコードコントラクト相対関数に奇妙な方法で名前を付けていることに気づきました。
「require」と「ensure」の最後に「s」を追加するため、Contract.Requires()とContract.Ensures()がありますが、「assert」と「assume」の最後にはないため、Contractがあります。 .Assert()およびContract.Assume()。違いは私を少し混乱させます。
実際、私の本当の問題は、PHPでcode-contractを使おうとしているので、.NET 4の「Contract」クラスを模倣するものを作成することです。PHPにはパラメーターのタイプを検証する組み込みメソッドがないため、検証を行うために、自分のContractクラスにメソッドを追加します。「expect」という単語を選択します。「expectparameter'bar'は文字列であると思いますが...」は、パラメーターの型が間違っている場合の一般的なメッセージです。そして問題が発生します。メソッドにContract.Expect()という名前を付ける必要がありますか、それともContract.Expects()という名前を付ける必要がありますか?
私は英語を話さない国から来たので、英語が下手でごめんなさい。実際には英語の質問かもしれませんが、私を助けることができるのはプログラマーだけだと思います。この質問がここで適切でない場合は、申し訳ありません。
wcf - WCF によるセルフ トラッキング エンティティ (EF) の検証
OperationContract
エンティティを追加/更新するときに、何をすべきかを定義するのに問題があります。エンティティ (またはエンティティのリスト) を WCF サービス経由で送信したいと考えていますObjectContext
(これにより、実際の検証を行うためにビジネス マネージャーがインスタンス化されます)。
エンティティがすべての検証ルールに合格した場合 (より複雑なビジネス ルールの合否を判断するためにデータベースにクエリを実行する必要がある場合があります)、エンティティはデータベースに保存され、返せるようにする必要があります。その ID (ID 列の主キー) と同時実行トークン (タイムスタンプ列) の値ですが、それが失敗した場合は、明らかに、何が問題だったかを示すメッセージが必要です。更新の場合、必要なのは同時実行トークンの新しい値だけですが、ここでも検証メッセージが必要です。
さらに複雑にするために、エンティティは複数の子/孫エンティティを持つこともできます。たとえば、トリップにはストップがあり、オーダーが含まれる可能性があります。
私は、人々が現実の世界でこれをどのように扱っているのか疑問に思っています。最も単純な例は、次のような WCF サービスの操作を示しています。
これを処理するための素晴らしいアイデアはありますか? 私は本当にここで実用的なアドバイスを探しているだけだと思います。
1 回のサービス呼び出しでオブジェクトのコレクションを保存しようとする必要がありますか?
フォールト コントラクトを通じて検証メッセージを伝達する必要がありますか?
アドバイス/入力があれば助かります、ありがとう!
wcf - WCF エンドポイント コントラクト名 -- 汎用の場合、どのように割り当てるのですか?
- IGenericService は、"ABC.Server.Common" (ABC.Server.Common.dll) という名前のアセンブリに存在します。
- MyType は、"ABC.Server.Modules.X" (ABC.Server.Modules.X.dll) という名前のアセンブリに存在します。
コード:
要約コード:
Web.config:
私は SVC ファイルを使用しません。代わりに、その情報は Web.config で処理されます。
実際に機能させるには、コントラクト名に何を入力すればよいですか?
wcf - サービスコントラクトで複合型パラメータを渡す方法
これは既存のXMLリクエスト形式であり、以下のこの形式でこのリクエストを受け入れるWebサービスを実装する必要があります。
(メソッドまたは操作名)(complex type1)(complex type2)(complex type3)(someプリミティブデータtype1)xyz(/ someプリミティブデータタイプ)(someプリミティブデータtype2)abc(/ someプリミティブデータタイプ)(/ complex type3 )(/ complex type2)(/ complex type1)(/メソッドまたは操作名)
私はこれまでWebサービスを作成したことがなく、過去2日間からサービス契約とデータ契約について読んでいました。
私が知っていること、サービス契約を作成するには
java - 比較メソッドが例外をスローするのはなぜですか -- 比較メソッドが一般規約に違反しています!
なぜこのコードは
この例外をスローします。 ERROR/AndroidRuntime(244): java.lang.IllegalArgumentException: Comparison method violates its general contract!
ERROR/AndroidRuntime(4446): at java.util.TimSort.mergeLo(TimSort.java:743)
メソッド sre.getSponsored() はブール値を返します。
ありがとう。
wcf - コントラクトを参照せずに WCF REST サービスをプログラムで呼び出す
これは基礎として役に立ちます:
プログラムでクライアントを WCF サービスに接続する方法は?
ただし、サービス コントラクトの知識がなくても、クライアントに同じことを REST スタイルで実行してもらいたいと考えています。
これが Javascript / jQuery で簡単に行われる方法を見ると、C# にオプションがないのは奇妙に思えます。
java - Java メソッドで前提条件をアサートする美しい方法はありますか?
私の関数の多くには、宣言のすぐ下に検証コードが大量に含まれています。
特定の入力の有効な範囲を正確に指定したい - たとえば、a > B、C => 1 または str_d.length() > 0。
一部の関数には検証が必要な引数が非常に多いため、前提条件を検証するためだけに多くのボイラープレートを作成することになります。私は、主に技術者以外の開発者が使用するライブラリを作成しています。関数入力を検証することが、ユーザーが API を正しく操作できるようにするための最良の方法であることがわかりました。エラーが発生するのが早ければ早いほど、お客様がしなければならない作業は少なくなります。
私の方法で事前条件、事後条件(およびおそらく不変条件)を指定するためのよりエレガントな方法はありますか?
同僚が Eiffel プログラミング言語の機能について教えてくれました。これにより、多くのボイラープレート コードを繰り返さずに、前/後/不変の条件を非常に自然な方法で記述できます。この魔法の一部を使用できる Java 言語へのアドオンはありますか?
html - マウスオーバーでDIVを展開/マウスアウトで展開解除
しかし、ここhttp://jsfiddle.net/6PDEA/4/に見られるように、自分の使用法に合わせて変更すると、一番下の div が閉じたままになりません。誰でも助けることができますか?
編集:最初の回答は「ロード時に拡張」の問題を修正しましたが、一番下のDIVは修正しませんでした
編集 2: 最終的な作業コード: http://jsfiddle.net/6PDEA/5/
下部 DIV の問題を修正しました。その下に別の DIV を追加し、785w x 30h の空白のグラフィックを配置しました。