/// <summary> /// 启动项注册 /// </summary> protected void ConfigureServices() { AutofacLocator autofacLocator = new AutofacLocator(); //创建IOC容器 autofacLocator.Register(); //注册服务 BootStrapper.Initialize(autofacLocator); }
/// <summary> /// 启动项注册 /// </summary> protected void ConfigureServices() { AutofacLocator autofacLocator = new AutofacLocator(); //创建IOC容器 Assembly asm = Assembly.GetExecutingAssembly(); autofacLocator.Register(asm); //注册服务 BootStrapper.Initialize(autofacLocator, asm); }
public App() { InitializeComponent(); Constants.InitAsync(Instance); AutofacLocator autofac = new AutofacLocator(); autofac.Register(); ServiceProvider.RegisterSerivceLocator(autofac); MainPage = new NavigationPage(new MainPage()); }
protected void ConfigureServices() { AutofacLocator locator = new AutofacLocator(); ContainerBuilder builder = new ContainerBuilder(); builder.RegisterType(typeof(LoginCenter)).Named("LoginCenter", typeof(IModuleDialog)); locator.Register(builder); AutofacProvider.RegisterServiceLocator(locator); }
protected void ConfigureServices() { AutofacLocator locator = new AutofacLocator(); ContainerBuilder builder = new ContainerBuilder(); builder.RegisterType <ConsumptionService>().As <IConsumptionService>(); builder.RegisterType(typeof(LoginCenter)).Named("LoginCenter", typeof(IModuleDialog)); builder.RegisterType(typeof(MainCenter)).Named("MainCenter", typeof(IModuleDialog)); builder.RegisterType(typeof(SkinCenter)).Named("SkinCenter", typeof(IModule)); builder.RegisterType(typeof(UserCenter)).Named("UserCenter", typeof(IModule)); builder.RegisterType(typeof(MenuCenter)).Named("MenuCenter", typeof(IModule)); builder.RegisterType(typeof(BasicCenter)).Named("BasicCenter", typeof(IModule)); locator.Register(builder); AutofacProvider.RegisterServiceLocator(locator); }
static void Main() { //var cnt = ConnectionSettings // .Create() // .SetDefaultUserCredentials(new UserCredentials("admin", "changeit")) // .Build(); //var eventStoreConnection = EventStoreConnection.Create(cnt, new IPEndPoint(IPAddress.Loopback, 1113)); //eventStoreConnection.ConnectAsync().Wait(); //eventStoreConnection.SubscribeToStreamFrom( // stream: "Aggregate"+"View", // lastCheckpoint: StreamCheckpoint.StreamStart, // resolveLinkTos: true, // eventAppeared: (upSubscription, @event) => // { // var eventType = Type.GetType(@event.Event.EventType); // }, userCredentials: new UserCredentials("admin", "changeit")); //Console.ReadKey(); Mapper.CreateMap <AggregateCreated, AnotherAggregateCreated>() .ConstructUsing(created => new AnotherAggregateCreated(created.Identity)) .ForMember(x => x.Identity, x => x.Ignore()); Mapper.CreateMap <AggregateNameCreated, AggregateNameCreated>() .ConstructUsing(created => new AggregateNameCreated(created.Identity, created.Name)) .ForMember(x => x.Identity, x => x.Ignore()) .ForMember(x => x.Name, x => x.Ignore()); Mapper.CreateMap <AnotherAggregateCreated, AggregateCreated>() .ConstructUsing(created => new AggregateCreated(created.Identity)) .ForMember(x => x.Identity, x => x.Ignore()); //using (MemoryStream tempStream = new MemoryStream()) //{ // BinaryFormatter binFormatter = new BinaryFormatter(null, // new StreamingContext(StreamingContextStates.Clone)); // binFormatter.Serialize(tempStream, envel); // tempStream.Seek(0, SeekOrigin.Begin); // var clone = binFormatter.Deserialize(tempStream); //} //var envelDto = new EnvelopeDto<C> //{ // Body = envel.Body, // IsRedelivered = false, // MessageId = envel.MessageId //}; //var h = JsonConvert.SerializeObject(envelDto); //var t = (EnvelopeDto<C>)JsonConvert.DeserializeObject(h, typeof(EnvelopeDto<C>)); //Envelope<C> qq = t; //var envAc = Activator.CreateInstance(typeof (Envelope<C>), t.MessageId, t.Body, false); var containerBuilder = new ContainerBuilder(); containerBuilder.RegisterModule <Cqrs.Messaging.Rabbitmq.TypeRegistrationModule>(); containerBuilder.RegisterModule <Cqrs.Domain.Eventing.TypeRegistrationModule>(); containerBuilder.RegisterModule <Commands.Core.TypeRegistrationModule>(); containerBuilder.RegisterModule <Cqrs.ObjectMapping.TypeRegistrationModule>(); containerBuilder.RegisterModule <Cqrs.AntiCorruption.TypeRegistrationModule>(); containerBuilder.RegisterModule <Cqrs.Messaging.Core.TypeRegistrationModule>(); containerBuilder.RegisterModule <Cqrs.Persistance.EventSourcing.Core.TypeRegistrationModule>(); containerBuilder.RegisterModule <Cqrs.Persistance.EventSourcing.EventStore.TypeRegistrationModule>(); containerBuilder.RegisterModule <Cqrs.AntiCorruption.TypeRegistrationModule>(); containerBuilder.RegisterType <SnapshotDataContext>() .As <ISnapshotDataContext>() .SingleInstance(); containerBuilder.RegisterType <CreateAggregateCommandHandler>() .AsImplementedInterfaces().InstancePerDependency(); containerBuilder.RegisterType <ChangeAggregateNameCommandHandler>() .AsImplementedInterfaces().InstancePerDependency(); containerBuilder.RegisterType <AggregateCreatedEventHandler>() .AsImplementedInterfaces().InstancePerDependency(); containerBuilder.RegisterType <AggregateNameEventHandler>() .AsImplementedInterfaces().InstancePerDependency(); containerBuilder.RegisterType <AggregateProjection>() .AsImplementedInterfaces().InstancePerDependency(); //var j = typeof(RestoreEventSourcedAggregateCommandHandler<,,>) // .GetInterfaces().ToList(); //containerBuilder.RegisterGeneric(typeof(RestoreEventSourcedAggregateCommandHandler<,,>)) // .As(typeof(ICommandHandler<,>)) // .AsSelf() // .InstancePerDependency(); var container = containerBuilder.Build(); var ch = container.Resolve <ICommandHandler <RestoreEventSourcedAggregateCommand <AggregateIdentity, AggregateSnapshot>, RestoreAggregateCommandResult <Aggregate> > >(); var autofacAdapter = new AutofacLocator(container); var gatewayFactory = container.Resolve <IGatewayFactory>(); var gateWayBuilder = new GatewayConfigurationBuilder(gatewayFactory, autofacAdapter); var gateWay = gateWayBuilder .WithEventSubscriberThreads(10) .WithCommandHandlerThreads(10) .WithPrefetch(50) .Build(); gateWay .ForCommands() .Handle <C>() .Handle <Ch>(); gateWay.ForEvents() .Subscribe <AnotherAggregateCreated>() .Subscribe <AggregateNameCreated>(); ProjectionGatewayConfigurationBuilder .Create(autofacAdapter) .For("Aggregate") .SubscribeTo <AggregateCreated>() .SubscribeTo <AggregateNameCreated>() .Build() .UseEventStore( ConnectionSettings.Create() .SetDefaultUserCredentials(new UserCredentials("admin", "changeit")) .KeepRetrying() .UseConsoleLogger() .Build(), new IPEndPoint(IPAddress.Loopback, 2113), new IPEndPoint(IPAddress.Loopback, 1113) ); // var userCredentials = new UserCredentials("admin", "changeit"); // var projectionManager = new ProjectionsManager(new ConsoleLogger(), new IPEndPoint(IPAddress.Loopback, 2113), new TimeSpan(1, 0, 0)); // var byCategoryProjectionStatus = ((JObject)JsonConvert.DeserializeObject(projectionManager.GetStatusAsync("$by_category", userCredentials).Result))["status"].ToString(); // var streamByCategoryProjectionStatus = ((JObject)JsonConvert.DeserializeObject(projectionManager.GetStatusAsync("$stream_by_category", userCredentials).Result))["status"].ToString(); // if (byCategoryProjectionStatus == "Stopped") // { // projectionManager.EnableAsync("$by_category", userCredentials).Wait(); // } // if (streamByCategoryProjectionStatus == "Stopped") // { // projectionManager.EnableAsync("$stream_by_category", userCredentials).Wait(); // } // const string projectionQuery = @"fromCategory('AggregateRoot') // .foreachStream() // .whenAny(function(state, event){ // linkTo('AggregateBoundedContext', event); // })"; // string aggregateCreatedProjectionQuery = @"fromCategory('AggregateRoot') // .foreachStream() // .when({'" + typeof(AggregateCreated).FullName + "':" + // "function(state, event){linkTo('AggregateCreatedView', event);}" + // "});"; // string aggregateNameCreatedProjectionQuery = @" //options({ //processingLag: 500 //}); //fromCategory('AggregateRoot') // .foreachStream() // .when({'" + typeof(AggregateNameCreated).FullName + "':" + // "function(state, event){linkTo('AggregateNameCreatedView', event);}" + // "});"; // projectionManager.CreateContinuousAsync("AggregateProjection", projectionQuery, userCredentials).Wait(); //projectionManager.CreateContinuousAsync("AggregateCreatedProjection", aggregateCreatedProjectionQuery, userCredentials).Wait(); //projectionManager.CreateContinuousAsync("AggregateNameCreatedProjection", aggregateNameCreatedProjectionQuery, userCredentials).Wait(); Console.ReadKey(); var bus = container.Resolve <ICommandBus>(); var aggregateId = Guid.NewGuid(); var anotherAggregateId = Guid.NewGuid(); var createAggregateCommand = new C(new AggregateIdentity(aggregateId), "NewAggregate"); bus.Dispatch(createAggregateCommand); //bus.Dispatch(new C(new AggregateIdentity(Guid.NewGuid()), "AAA")); Console.ReadKey(); var changeAggregateNameCommand = new Ch(2, new AggregateIdentity(aggregateId), "ChangedName"); bus.Dispatch(changeAggregateNameCommand); Console.ReadKey(); var changeAggregateNameCommand1 = new Ch(3, new AggregateIdentity(aggregateId), "ChangedName1"); bus.Dispatch(changeAggregateNameCommand1); Console.ReadKey(); var createAggregateCommand1 = new C(new AggregateIdentity(anotherAggregateId), "NewAggregate"); bus.Dispatch(createAggregateCommand1); Console.ReadKey(); var changeAggregateNameCommand13 = new Ch(2, new AggregateIdentity(anotherAggregateId), "ChangedName"); bus.Dispatch(changeAggregateNameCommand13); Console.ReadKey(); var changeAggregateNameCommand12 = new Ch(3, new AggregateIdentity(anotherAggregateId), "ChangedName1"); bus.Dispatch(changeAggregateNameCommand12); Console.ReadKey(); }