protected override void Load(ContainerBuilder builder) { //register service builder.RegisterType <BoxQueryService>().As <IBoxQueryService>() .OnActivated(x => { if (BoxedQueryRemoteExtensions.DefaultEvaluator == null) { BoxedQueryRemoteExtensions.DefaultEvaluator = x.Context.Resolve <NHibernateBoxQueryEvaluator>().Evaluate; } }); //known types KnownTypeRegistry.RegisterKnownTypes(); base.Load(builder); }
protected override void Load(ContainerBuilder builder) { builder.Register(c => new ChannelFactory <IBoxQueryService>( new NetNamedPipeBinding { //CloseTimeout = new TimeSpan(0, 5, 0), //OpenTimeout = new TimeSpan(0, 5, 0), //ReceiveTimeout = new TimeSpan(0, 10, 0), //SendTimeout = new TimeSpan(0, 10, 0), //HostNameComparisonMode = HostNameComparisonMode.StrongWildcard, //MaxBufferSize = int.MaxValue, //MaxBufferPoolSize = int.MaxValue, MaxReceivedMessageSize = int.MaxValue, //TransferMode = TransferMode.Buffered, ReaderQuotas = new XmlDictionaryReaderQuotas { MaxArrayLength = int.MaxValue, MaxBytesPerRead = int.MaxValue, MaxDepth = int.MaxValue, MaxNameTableCharCount = int.MaxValue, MaxStringContentLength = int.MaxValue, } }, new EndpointAddress("net.pipe://localhost/BoxQueryService"))) .SingleInstance(); builder.Register(c => c.Resolve <ChannelFactory <IBoxQueryService> >().CreateChannel()).UseWcfSafeRelease() .OnActivated(c => { BoxedQueryRemoteExtensions.DefaultEvaluator = new Func <XElement, object>( x => c.Context.Resolve <IBoxQueryService>().Evaluate(x)); }); builder.RegisterGeneric(typeof(BoxQuery <>)); //known types KnownTypeRegistry.RegisterKnownTypes(); base.Load(builder); }