/// <summary>
        /// Initializes a new instance of the <see cref="WindowsTimeService"/> class.
        /// </summary>
        /// <param name="timeServiceHost">The time service host.</param>
        /// <param name="timeWebServiceHost">The time web service host.</param>
        public WindowsTimeService(NinjectServiceHost <TimeService> timeServiceHost, NinjectWebServiceHost <TimeWebService> timeWebServiceHost)
        {
            this.InitializeComponent();

            this.timeServiceHost    = timeServiceHost;
            this.timeWebServiceHost = timeWebServiceHost;
        }
Esempio n. 2
0
        public NinjectServiceHelper(IServiceBehavior serviceBehavior, string address, Binding binding)
        {
            // Create Ninject service host
            if (binding.GetType() == typeof(WebHttpBinding))
            {
                _serviceHost = new NinjectWebServiceHost(serviceBehavior, typeof(TServiceType));
            }
            else
            {
                _serviceHost = new NinjectServiceHost(serviceBehavior, typeof(TServiceType));
            }

            // Add endpoint
            _serviceHost.AddServiceEndpoint(typeof(TServiceContract), binding, address);

            // Add web behavior
            if (binding.GetType() == typeof(WebHttpBinding))
            {
                var webBehavior = new WebHttpBehavior
                {
                    AutomaticFormatSelectionEnabled = true,
                    HelpEnabled           = true,
                    FaultExceptionEnabled = true
                };
                _serviceHost.Description.Endpoints[0].Behaviors.Add(webBehavior);
            }

            // Add service metadata
            var metadataBehavior = new ServiceMetadataBehavior();

            if (binding.GetType() == typeof(BasicHttpBinding))
            {
                metadataBehavior.HttpGetEnabled = true;
                metadataBehavior.HttpGetUrl     = new Uri(address);
            }
            _serviceHost.Description.Behaviors.Add(metadataBehavior);

            // Open service host
            _serviceHost.Open();

            // Init client
            var factory = new ChannelFactory <TServiceContract>(binding);

            _client = factory.CreateChannel(new EndpointAddress(address));
        }