public void Install(ServiceHost serviceHost, IKernel kernel, IWcfBurden burden) { object extension = GetInstance(kernel, burden); if (extension is IServiceBehavior) { serviceHost.Description.Behaviors.Add((IServiceBehavior)extension); } else if (extension is IServiceHostAware) { WcfUtils.BindServiceHostAware(serviceHost, (IServiceHostAware)extension, true); } else if (extension is IErrorHandler) { WcfUtils.RegisterErrorHandler(serviceHost, (IErrorHandler)extension, true); } else if (extension is IExtension <ServiceHostBase> ) { serviceHost.Extensions.Add((IExtension <ServiceHostBase>)extension); } else { WcfUtils.AttachExtension(serviceHost.Description.Behaviors, extension); } }
private static void BindServiceHostAware(ServiceHost serviceHost, IKernel kernel, IWcfBurden burden) { WcfUtils.AddBehaviors <IServiceHostAware>(kernel, WcfExtensionScope.Services, null, burden, serviceHostAware => { WcfUtils.BindServiceHostAware(serviceHost, serviceHostAware, true); return(true); }); }