1

私が見つけた最新のチュートリアルに従ってサービスをセットアップしましたが、すべてが正常に機能しているようです。

でも、

QueryParametersコレクション(例:?name = tom&age = 20)を含むWebOperationContext.Current.IncomingRequest.UriTemplateMatchクラスにアクセスするには、WebHttpBehaviorを使用するようにサービスを構成する必要があります。これを機能させる唯一の方法は、コンソールアプリケーションからWebServiceHostを使用してセルフホストすることです。IISまたはcassiniのweb.configまたはglobal.asaxからは機能しません。

Web-apiの使用方法に関するチュートリアルで、IISでホストする前にIoCについて説明しているのは奇妙だと思います。それは、はるかに便利ではないでしょうか。それらはすべて、IoCを使用して、クエリ文字列をまったく使用しない非常に単純なサービスを使用しているようです。

これが私が見つけたリソースで、ほとんど問題について言及していますが、修正はしていません。

4

1 に答える 1

3

次のようなことができます。

[ServiceContract]
public class ContactResource {
    [WebGet(UriTemplate = "")]
    public HttpResponseMessage<Contact> Get(HttpRequestMessage request) {
        var querystring = request.RequestUri.Query;
        var parameters = HttpUtility.ParseQueryString(querystring);
        var name = parameters["Name"];
        return new HttpResponseMessage<Contact>(
            new Contact()
                {
                    Id = Guid.NewGuid(),
                    Name = name
                });
    }
}

http://localhost:12741/contact?name=ジョージ

収量:

<Contact>
<Id>19bae3a5-e2b7-4858-8aa4-08161ea18018</Id>
<Name>George</Name>
</Contact>
于 2011-09-08T10:16:18.183 に答える