問題タブ [servicecontract]
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.
.net - 公式の WCF チュートリアルの [ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")] の意味は何ですか?
私は WCF の公式の基本的なチュートリアルに従おうとしています: https://docs.microsoft.com/en-us/dotnet/framework/wcf/getting-started-tutorial
ある時点で、サービス コントラクトを定義するときに、チュートリアルでは次のコードを入力するよう求められます。
私はServiceContract
属性、特に奇妙な名前空間に非常に混乱しています:http://Microsoft.ServiceModel.Samples
この名前空間は何ですか?
のドキュメントServiceContractAttribute
を検索しようとしましたが、ここで何が起こっているのかまだわかりません。
デフォルトでは、Name プロパティと Namespace プロパティはコントラクト タイプの名前であり、http://tempuri.orgです。であり、ProtectionLevel は ProtectionLevel.None です。これらのプロパティを使用して、サービス コントラクトで名前、名前空間、および保護レベルを明示的に設定することをお勧めします。そうすることで、2 つの目標が達成されます。まず、マネージド型情報に直接接続されていないコントラクトを構築するため、WSDL で表現されているコントラクトを破ることなく、マネージド コードと名前空間をリファクタリングできます。次に、コントラクト自体に特定レベルの保護を明示的に要求することで、バインディング構成がそのレベルのセキュリティをサポートしているかどうかをランタイムが検証できるようになり、不適切な構成による機密情報の公開を防ぐことができます。保護レベルの詳細については、保護レベルについてを参照してください。
この名前空間は何ですか? この属性を何に設定すればよいですか? 好きな弦は?特定の形式の文字列? そこに何を入れるかを決めるとき、何を考慮に入れる必要がありますか?
両方の例 (http://Microsoft.ServiceModel.Samples
とhttp://tempuri.org
) は、HTTP アドレスを入力する必要があることを示唆しています。しかし、どの HTTP アドレスですか? 何か意味のあることをするサーバーをこのアドレスで運用する必要がありますか? このサーバーは何をすべきですか? これらの例と、http://tempuri.org
(推奨されていなくても) 許可されているという事実に基づいて、この名前空間が私の WCF サービスのアドレスに設定されることは想定されていないことを理解していますか? (そうしないhttp://tempuri.org
と、サービスが tempuri.org ではなく localhost でホストされているため、ローカルでホストされているサンプルの WCF サービスでも機能しないことを理解しています!`
そして、何http://Microsoft.ServiceModel.Samples
ですか??? それは有効なHTTPアドレスですか?もしそうなら、どのような形式で?(私が見たときhttp://something
、これはIPアドレスまたはDNSの助けを借りてIPアドレスに解決できるドメインのいずれかであると予想されますがMicrosoft.ServiceModel.Samples
、これら2つのどちらでもないようです)http://Microsoft.ServiceModel.Samples
ブラウザに入力しようとしましたが、当然のことながら、サーバーが見つかりませんというエラーが表示されました。
この名前空間の意味は何ですか? そして、そこに何を置きますか?