Skip to content

C# client

Fanie Reynders edited this page Jan 18, 2016 · 1 revision

Generate a C# proxy on the client-side based on the metadata provided by a service implementing WebApiProxy.

Install via NuGet

Install this package from NuGet:

Install-Package WebApiProxy.CSharp

Note: This package requires the libraries of ASP.NET Web API Client (version 5.2 or higher)

Generation

Note: The automatic generation of code upon project build is now completely opt-in. You need to explicitly specify if you want the proxy to be generated on every build.

The C# proxy code will be generated every time you re-build the project (only if you explicitly specified generateOnBuild="true") and is based on specific configuration in the WebApiProxy.config file:

<proxy endpoint="http://myservice.net/api/proxies" />

The endpoint property is mandatory and provides the generator the URI of the metadata endpoint. See the WebApiProxy Configuration File page to read more on the config file.

Note: The generated code is cached to avoid compilation errors if the service isn't reachable at that time

On-demand generation using the Nuget Package Manager Console

You can also generate proxy code on demand by using the Nuget Package Manager Console. Simply run the commandlet:

WebApiProxy-Generate-CSharp

Usage

After the code generation it can be used like:

using (var client = new PeopleClient())
{
    var response = await client.GetAsync(2); //get person with id = 2

    var people = await response.Content.ReadAsAsync<Person[]>();
}

Code snippet

Use the webapiproxy code snippet to quickly create the code structure above. Just type "webapiproxy" followed by the TAB key.

Note: If the types are not found (or resolved) after build, simply give your project a restart or restart Visual Studio.

Great developer experience with Intellisense

It even has nice Intellisense including documentation provided by the documentation provider: Intellisense

Note: The documentation on the IntelliSense will only appear if the service uses the documentation provider. You can use the ASP.NET Web API Help Page package on NuGet