public IFaultInjectionTransactionalState <TState> Create <TState>(IFaultInjectionTransactionalStateConfiguration config) where TState : class, new() { TransactionalState <TState> transactionalState = ActivatorUtilities.CreateInstance <TransactionalState <TState> >(this.context.ActivationServices, config as ITransactionalStateConfiguration, this.serializerSettings, this.context); FaultInjectionTransactionalState <TState> deactivationTransactionalState = ActivatorUtilities.CreateInstance <FaultInjectionTransactionalState <TState> >(this.context.ActivationServices, transactionalState, this.context); deactivationTransactionalState.Participate(context.ObservableLifecycle); return(deactivationTransactionalState); }
public Factory <IGrainActivationContext, object> GetFactory(ParameterInfo parameter, FaultInjectionTransactionalStateAttribute attribute) { IFaultInjectionTransactionalStateConfiguration config = attribute; // use generic type args to define collection type. MethodInfo genericCreate = create.MakeGenericMethod(parameter.ParameterType.GetGenericArguments()); object[] args = new object[] { config }; return(context => Create(context, genericCreate, args)); }
public IFaultInjectionTransactionalState <TState> Create <TState>(IFaultInjectionTransactionalStateConfiguration config) where TState : class, new() { var currentContext = this.contextAccessor.GrainContext; TransactionalState <TState> transactionalState = ActivatorUtilities.CreateInstance <TransactionalState <TState> >(currentContext.ActivationServices, new TransactionalStateConfiguration(config), this.contextAccessor); FaultInjectionTransactionalState <TState> deactivationTransactionalState = ActivatorUtilities.CreateInstance <FaultInjectionTransactionalState <TState> >(currentContext.ActivationServices, transactionalState, this.contextAccessor); deactivationTransactionalState.Participate(currentContext.ObservableLifecycle); return(deactivationTransactionalState); }