protected void ConfigureChannelFactory(ChannelFactory channelFactory, IWcfClientModel clientModel, IWcfBurden burden) { var extensions = new ChannelFactoryExtensions(channelFactory, Kernel) .Install(burden, new WcfChannelExtensions()); var endpointExtensions = new ServiceEndpointExtensions(channelFactory.Endpoint, true, Kernel) .Install(burden, new WcfEndpointExtensions(WcfExtensionScope.Clients)); if (clientModel != null) { extensions.Install(clientModel.Extensions, burden); endpointExtensions.Install(clientModel.Extensions, burden); endpointExtensions.Install(clientModel.Endpoint.Extensions, burden); } burden.Add(new ChannelFactoryHolder(channelFactory)); }
internal static void AddBehaviors <T>(IKernel kernel, WcfExtensionScope scope, KeyedByTypeCollection <T> behaviors, IWcfBurden burden, Predicate <T> predicate) { foreach (var handler in FindExtensions <T>(kernel, scope)) { T behavior = (T)handler.Resolve(CreationContext.Empty); if (predicate == null || predicate(behavior)) { if (behaviors != null) { behaviors.Add(behavior); } if (burden != null) { burden.Add(behavior); } } } }
protected override object GetExtensionInstance(IKernel kernel, IWcfBurden burden) { burden.Add(Instance); return Instance; }
protected override object GetExtensionInstance(IKernel kernel, IWcfBurden burden) { object extension = kernel.Resolve(ServiceType); burden.Add(extension); return extension; }
protected override object GetExtensionInstance(IKernel kernel, IWcfBurden burden) { object extension = kernel.Resolve(Key, WcfUtils.EmptyArguments); burden.Add(extension); return extension; }
protected override object GetExtensionInstance(IKernel kernel, IWcfBurden burden) { object extension = kernel[key]; burden.Add(extension); return extension; }
private object GetInstance(IKernel kernel, IWcfBurden burden) { if (instance == null) { instance = ResolveExtension(kernel); burden.Add(instance); } return instance; }