Ejemplo n.º 1
0
 public Task <Tuple <TExtension, TExtensionInterface> > BindExtension <TExtension, TExtensionInterface>(Func <TExtension> newExtensionFunc) where TExtension : IGrainExtension where TExtensionInterface : IGrainExtension
 {
     return(providerRuntime.BindExtension <TExtension, TExtensionInterface>(newExtensionFunc));
 }
            public async Task BindAsync(Grain containerGrain, IServiceProvider services, ITransactionOrchestrationResultGrain resultGrain)
            {
                this.grain       = containerGrain;
                this.resultGrain = resultGrain;
                this.logger      = services.GetService <ILogger <TransactionalResource> >();

                // bind extension to grain
                IProviderRuntime runtime = services.GetRequiredService <IProviderRuntime>();
                Tuple <TransactionalExtension, ITransactionalExtension> boundExtension = await runtime.BindExtension <TransactionalExtension, ITransactionalExtension>(() => new TransactionalExtension());

                boundExtension.Item1.Register(nameof(TransactionalResource), this);
                this.transactionalResource = boundExtension.Item2.AsTransactionalResource(nameof(TransactionalResource));
            }