Ejemplo n.º 1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="RouteLinker" /> class.
        /// </summary>
        /// <param name="request">The current request.</param>
        /// <param name="routeValuesQuery">
        /// A Strategy for extracting route values.
        /// </param>
        /// <param name="dispatcher">A custom dispatcher.</param>
        /// <remarks>
        /// <para>
        /// This constructor overload requires custom Strategies to be
        /// injected. If you don't want to supply one or both custom
        /// Strategies, you can use a simpler constructor overload.
        /// </para>
        /// <para>
        /// After initialization, the parameter values are available as
        /// read-only properties.
        /// </para>
        /// </remarks>
        /// <exception cref="System.ArgumentNullException">
        /// request is null
        /// </exception>
        /// <exception cref="System.ArgumentNullException">
        /// routeValuesQuery is null
        /// </exception>
        /// <exception cref="System.ArgumentNullException">
        /// dispatcher is null
        /// </exception>
        /// <seealso cref="RouteLinker(HttpRequestMessage)" />
        /// <seealso cref="RouteLinker(HttpRequestMessage, IRouteValuesQuery)" />
        /// <seealso cref="RouteLinker(HttpRequestMessage, IRouteDispatcher)" />
        /// <seealso cref="Request" />
        /// <see cref="RouteValuesQuery" />
        /// <see cref="RouteDispatcher" />
        public RouteLinker(
            HttpRequestMessage request,
            IRouteValuesQuery routeValuesQuery,
            IRouteDispatcher dispatcher)
        {
            if (request == null)
            {
                throw new ArgumentNullException("request");
            }
            if (routeValuesQuery == null)
            {
                throw new ArgumentNullException("routeValuesQuery");
            }
            if (dispatcher == null)
            {
                throw new ArgumentNullException("dispatcher");
            }

            this.request     = request;
            this.valuesQuery = routeValuesQuery;
            this.dispatcher  = dispatcher;
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RouteLinker" /> class.
 /// </summary>
 /// <param name="request">The current request.</param>
 /// <param name="routeValuesQuery">
 /// A Strategy for extracting route values.
 /// </param>
 /// <remarks>
 /// <para>
 /// This constructor overload requires a custom
 /// <see cref="IRouteValuesQuery" />. If you don't want to use a custom
 /// query, you can use the simpler constructor overload.
 /// </para>
 /// <para>
 /// After initialization, the <paramref name="request" /> value is
 /// available through the <see cref="Request" /> property, and the
 /// <paramref name="routeValuesQuery" /> value is available via the
 /// <see cref="RouteValuesQuery" /> property.
 /// </para>
 /// </remarks>
 /// <seealso cref="RouteLinker(HttpRequestMessage)" />
 /// <seealso cref="RouteLinker(HttpRequestMessage, IRouteDispatcher)" />
 /// <seealso cref="RouteLinker(HttpRequestMessage, IRouteValuesQuery, IRouteDispatcher)" />
 public RouteLinker(HttpRequestMessage request, IRouteValuesQuery routeValuesQuery)
     : this(request, routeValuesQuery, new DefaultRouteDispatcher())
 {
 }
Ejemplo n.º 3
0
 public void GivenGreedyConstructorQueryIsCorrect(
     [Frozen] IRouteValuesQuery expected,
     [Greedy] RouteLinker sut)
 {
     Assert.Equal(expected, sut.RouteValuesQuery);
 }