private static IHttpHostConfigurationBuilder Configure(IHttpHostConfigurationBuilder builder, int queryLimit)
        {
            builder.SetMessageHandlerFactory(new HttpQueryMessageHandlerFactory(queryLimit, builder.Configuration.MessageHandlerFactory));
            builder.SetOperationHandlerFactory(new HttpQueryOperationHandlerFactory(builder.Configuration.OperationHandlerFactory));

            return(builder);
        }
		private static IHttpHostConfigurationBuilder Configure(IHttpHostConfigurationBuilder builder, int queryLimit)
		{
			builder.SetMessageHandlerFactory(new HttpQueryMessageHandlerFactory(queryLimit, builder.Configuration.MessageHandlerFactory));
			builder.SetOperationHandlerFactory(new HttpQueryOperationHandlerFactory(builder.Configuration.OperationHandlerFactory));

			return builder;
		}
 public HttpConfigurableServiceHost(object singletonInstance, IHttpHostConfigurationBuilder builder, params Uri[] baseAddresses)
     : base(singletonInstance, baseAddresses)
 {
     this.serviceType = singletonInstance.GetType();
     this.SetAspNetCompatabilityRequirements();
     Configure(builder.Configuration);
 }
 public HttpConfigurableServiceHost(object singletonInstance, IHttpHostConfigurationBuilder builder, params Uri[] baseAddresses)
     : base(singletonInstance, baseAddresses)
 {
     this.serviceType = singletonInstance.GetType();
     this.SetAspNetCompatabilityRequirements();
     Configure(builder.Configuration);
 }
示例#5
0
 public static void RegisterRoutes(IHttpHostConfigurationBuilder configuration)
 {
     foreach (var resourceBinding in _resources)
     {
         AddServiceRoute(resourceBinding.ResourceType, resourceBinding.RelativeUri, configuration);
     }
 }
示例#6
0
    /// <summary>
    /// Initializes a new instance of the <see cref="HttpWebService&lt;TService&gt;"/> class.
    /// </summary>
    /// <param name="serviceBaseUrl">The service base URL without the resource path, such as "http://localhost:2000".</param>
    /// <param name="serviceResourcePath">The service resource path, such as "products".</param>
    /// <param name="configuration">The configuration for the service.</param>
    public HttpWebService(string serviceBaseUrl, string serviceResourcePath, IHttpHostConfigurationBuilder configuration)
    {
        this.BaseUri    = new Uri(serviceBaseUrl);
        this.serviceUri = new Uri(new Uri(serviceBaseUrl), serviceResourcePath);

        this.serviceHost = new HttpConfigurableServiceHost(typeof(TService), configuration, this.serviceUri);
        this.serviceHost.Open();
    }
 public static void MapServiceRoute(this RouteCollection routes, Type serviceType, string routePrefix, IHttpHostConfigurationBuilder builder = null, params object[] constraints)
 {
     if (routes == null)
     {
         throw new ArgumentNullException("routes");
     }
     var route = new ServiceRoute(routePrefix, new HttpConfigurableServiceHostFactory {Builder = builder}, serviceType);
     routes.Add(route);
 }
 public HttpConfigurableServiceHost(Type serviceType, IHttpHostConfigurationBuilder builder, params Uri[] baseAddresses)
     : base(serviceType, baseAddresses)
 {
     this.serviceType = serviceType;
     this.SetAspNetCompatabilityRequirements();
     if (builder == null)
         this.Configure(new HttpHostConfiguration());
     else
         Configure(builder.Configuration);
 }
        protected void Application_Start(object sender, EventArgs e)
        {
            var containerBuilder = new ContainerBuilder();
            containerBuilder.RegisterModule(new MainModule());
            var container = containerBuilder.Build();

            _configuration = HttpHostConfiguration.Create()
                .AddFormatters(new RestbucksMediaTypeFormatter())
                .SetResourceFactory(new RestbucksResourceFactory(container));

            RestbucksResources.RegisterRoutes(Configuration);
        }
示例#10
0
        protected void Application_Start(object sender, EventArgs e)
        {
            var containerBuilder = new ContainerBuilder();

            containerBuilder.RegisterModule(new MainModule());
            var container = containerBuilder.Build();

            _configuration = HttpHostConfiguration.Create()
                             .AddFormatters(new RestbucksMediaTypeFormatter())
                             .SetResourceFactory(new RestbucksResourceFactory(container));

            RestbucksResources.RegisterRoutes(Configuration);
        }
 public HttpConfigurableServiceHost(Type serviceType, IHttpHostConfigurationBuilder builder, params Uri[] baseAddresses)
     : base(serviceType, baseAddresses)
 {
     this.serviceType = serviceType;
     this.SetAspNetCompatabilityRequirements();
     if (builder == null)
     {
         this.Configure(new HttpHostConfiguration());
     }
     else
     {
         Configure(builder.Configuration);
     }
 }
示例#12
0
 public RestbucksServiceHostFactory(IHttpHostConfigurationBuilder configuration)
     : base(configuration)
 {
 }
 public HttpQueryableServiceHostFactory(int queryLimit, IHttpHostConfigurationBuilder builder)
     : base(builder)
 {
     this.queryLimit = queryLimit;
 }
		/// <summary>
		/// Initializes a new instance of the <see cref="HttpQueryableServiceHost"/> class.
		/// </summary>
		public HttpQueryableServiceHost(Type serviceType, int queryLimit, IHttpHostConfigurationBuilder builder, params Uri[] baseAddresses)
			: base(serviceType, Configure(builder, queryLimit), baseAddresses)
		{
		}
		/// <summary>
		/// Initializes a new instance of the <see cref="HttpQueryableServiceHost"/> class.
		/// </summary>
		public HttpQueryableServiceHost(object singletonInstance, int queryLimit, IHttpHostConfigurationBuilder builder, params Uri[] baseAddresses)
			: base(singletonInstance, Configure(builder, queryLimit), baseAddresses)
		{
		}
示例#16
0
 public static HttpHostConfiguration ToConfiguration(this IHttpHostConfigurationBuilder builder)
 {
     return((HttpHostConfiguration)builder);
 }
		public HttpQueryableServiceHostFactory(int queryLimit, IHttpHostConfigurationBuilder builder)
			: base(builder)
		{
			this.queryLimit = queryLimit;
		}
 public HttpConfigurableServiceHost(IHttpHostConfigurationBuilder builder, params Uri[] baseAddresses)
     : base(typeof(TService), builder, baseAddresses)
 {
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="HttpQueryableServiceHost"/> class.
 /// </summary>
 public HttpQueryableServiceHost(Type serviceType, int queryLimit, IHttpHostConfigurationBuilder builder, params Uri[] baseAddresses)
     : base(serviceType, Configure(builder, queryLimit), baseAddresses)
 {
 }
示例#20
0
        private static void AddServiceRoute(Type serviceType, string routePrefix, IHttpHostConfigurationBuilder configuration)
        {
            var route = new ServiceRoute(routePrefix, new RestbucksServiceHostFactory(configuration), serviceType);

            RouteTable.Routes.Add(route);
        }
示例#21
0
    /// <summary>
    /// Makes Json.NET media type formatter the default for Json content types.
    /// </summary>
    public static IHttpHostConfigurationBuilder UseJsonNet(this IHttpHostConfigurationBuilder config)
    {
        config.Configuration.OperationHandlerFactory.Formatters.Insert(0, new JsonNetMediaTypeFormatter());

        return(config);
    }
示例#22
0
 public static void MapServiceRoute <TService>(this RouteCollection routes, string routePrefix, IHttpHostConfigurationBuilder builder = null, params object[] constraints)
 {
     MapServiceRoute <TService, HttpConfigurableServiceHostFactory>(routes, routePrefix, builder, constraints);
 }
 public HttpConfigurableServiceHostFactory(IHttpHostConfigurationBuilder builder)
 {
     this.Builder = builder;
 }
 public RestbucksServiceHostFactory(IHttpHostConfigurationBuilder configuration)
     : base(configuration)
 {
 }
示例#25
0
        public static void MapServiceRoute <TService, TServiceHostFactory>(this RouteCollection routes, string routePrefix, IHttpHostConfigurationBuilder builder = null, params object[] constraints) where TServiceHostFactory : ServiceHostFactoryBase, IConfigurableServiceHostFactory, new()
        {
            if (routes == null)
            {
                throw new ArgumentNullException("routes");
            }
            var route = new ServiceRoute(routePrefix, new TServiceHostFactory()
            {
                Builder = (HttpHostConfiguration)builder
            }, typeof(TService));

            routes.Add(route);
        }
 public HttpConfigurableServiceHostFactory(IHttpHostConfigurationBuilder builder)
 {
     this.Builder = builder;
 }
示例#27
0
 /// <summary>
 /// Creates an HTTP web service using the given instance to run it, and the specified
 /// service configuration.
 /// </summary>
 public static HttpWebService <TService> Create <TService>(TService serviceInstance, string serviceBaseUrl, string serviceResourcePath, IHttpHostConfigurationBuilder serviceConfiguration = null)
     where TService : class
 {
     return(new HttpWebService <TService>(serviceBaseUrl, serviceResourcePath, serviceConfiguration, serviceInstance));
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="HttpQueryableServiceHost"/> class.
 /// </summary>
 public HttpQueryableServiceHost(object singletonInstance, int queryLimit, IHttpHostConfigurationBuilder builder, params Uri[] baseAddresses)
     : base(singletonInstance, Configure(builder, queryLimit), baseAddresses)
 {
 }