示例#1
0
        public static CreateActorRouteMessage ForAggregate(string name, IAggregateCommandsHandlerDesriptor descriptor)
        {
            var messageRoutes = descriptor.RegisteredCommands.Select(c => new MessageRoute
                                                                     (
                                                                         MessageMetadataEnvelop.GenericForType(c.CommandType),
                                                                         c.Property
                                                                     )).ToArray();

            var hubType = typeof(AggregateHubActor <>).MakeGenericType(descriptor.AggregateType);

            return(new CreateActorRouteMessage(hubType, name, PoolKind.None, messageRoutes));
        }
示例#2
0
 public Task RegisterAggregate(IAggregateCommandsHandlerDesriptor descriptor)
 {
     var name = $"Aggregate_{descriptor.AggregateType.Name}";
     var createActorRoute = CreateActorRouteMessage.ForAggregate(name, descriptor);
     return _routingActor.Ask<RouteCreated>(createActorRoute);
 }