Tag: wcf web api

使用Castle Windsor在WebAPI中进行dependency injection

我想使用Castle Windsor在WebApi应用程序中实现dependency injection。 我有以下示例代码 – 界面 – public interface IWatch { { DateTime GetTime(); } } 以下Watch类实现了IWatch接口 – public class Watch:IWatch { public DateTime GetTime() { return DateTime.Now; } } WebApi控制器 – WatchController如下 – public class WatchController : ApiController { private readonly IWatch _watch; public WatchController() { _watch = new Watch(); } //http://localhost:48036/api/Watch public string […]

System.Net.Http.HttpClient缓存行为

我正在使用NuGet的HttpClient 0.6.0。 我有以下C#代码: var client = new HttpClient(new WebRequestHandler() { CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.CacheIfAvailable) }); client.GetAsync(“http://myservice/asdf”); 该服务(这次是CouchDB)返回ETag值和状态代码200 OK。 返回一个Cache-Control标头,其值为must-revalidate 更新,这是来自couchdb的响应头(取自visual studio调试器): Server: CouchDB/1.1.1 (Erlang OTP/R14B04) Etag: “1-27964df653cea4316d0acbab10fd9c04” Date: Fri, 09 Dec 2011 11:56:07 GMT Cache-Control: must-revalidate 下次我执行完全相同的请求时,HttpClient会执行条件请求并返回304 Not Modified。 哪个是对的。 但是,如果我使用具有相同CachePolicy的低级HttpWebRequest类,则第二次甚至不会发出请求。 这是我希望HttpClient也表现的方式。 它是必须重新validation的标头值还是为什么HttpClient表现不同? 我想只做一个请求,然后在没有条件请求的情况下从缓存中获取其余的请求。 (另外,作为附注,在调试时,响应状态代码显示为200 OK,即使服务返回304 Not Modified)

根据请求从MVC web api返回xml或json

鉴于以下webapiconfig; config.Routes.MapHttpRoute( name: “DefaultApi”, routeTemplate: “api/{controller}/{id}”, defaults: new { id = RouteParameter.Optional } ); 和这个控制器; public class ProductsController : ApiController { Product[] _products = new Product[] { new Product { Id = 1, Name = “Tomato Soup”, Category = “Groceries”, Price = 1 }, new Product { Id = 2, Name = “Yo-yo”, Category = […]