// Copyright (c) Microsoft Corporation. All rights reserved. See License.txt in the project root for license information. using System.Net.Http; using System.Web.Http.Routing; namespace System.Web.Http.Controllers { /// /// Contains information for a single HTTP operation. /// public class HttpControllerContext { private HttpConfiguration _configuration; private IHttpRouteData _routeData; private HttpRequestMessage _request; private HttpControllerDescriptor _controllerDescriptor; private IHttpController _controller; private UrlHelper _urlHelper; public HttpControllerContext(HttpConfiguration configuration, IHttpRouteData routeData, HttpRequestMessage request) { if (configuration == null) { throw Error.ArgumentNull("configuration"); } if (routeData == null) { throw Error.ArgumentNull("routeData"); } if (request == null) { throw Error.ArgumentNull("request"); } _configuration = configuration; _routeData = routeData; _request = request; } /// /// Initializes a new instance of the class. /// /// The default constructor is intended for use by unit testing only. public HttpControllerContext() { } public HttpConfiguration Configuration { get { return _configuration; } set { if (value == null) { throw Error.PropertyNull(); } _configuration = value; } } public HttpRequestMessage Request { get { return _request; } set { if (value == null) { throw Error.PropertyNull(); } _request = value; } } public IHttpRouteData RouteData { get { return _routeData; } set { if (value == null) { throw Error.PropertyNull(); } _routeData = value; } } /// /// Gets or sets the controller descriptor. /// /// /// The controller descriptor. /// public HttpControllerDescriptor ControllerDescriptor { get { return _controllerDescriptor; } set { if (value == null) { throw Error.PropertyNull(); } _controllerDescriptor = value; } } /// /// Gets or sets the HTTP controller. /// /// /// The HTTP controller. /// public IHttpController Controller { get { return _controller; } set { if (value == null) { throw Error.PropertyNull(); } _controller = value; } } /// /// Returns an instance of a UrlHelper, which is used to generate URLs to other APIs. /// public UrlHelper Url { get { if (_urlHelper == null) { _urlHelper = new UrlHelper(this); } return _urlHelper; } set { _urlHelper = value; } } } }