void IServiceBehavior.Validate(ServiceDescription description, ServiceHostBase host) { DurableServiceAttribute durable = new DurableServiceAttribute(); durable.SaveStateInOperationTransaction = true; description.Behaviors.Add(durable); PersistenceProviderFactory factory; if (AutoCompleteInstance) { factory = new TransactionalInstanceProviderFactory(); } else { factory = new TransactionalMemoryProviderFactory(); } PersistenceProviderBehavior persistenceBehavior = new PersistenceProviderBehavior(factory); description.Behaviors.Add(persistenceBehavior); if (TransactionRequiredAllOperations) { foreach (ServiceEndpoint endpoint in description.Endpoints) { foreach (OperationDescription operation in endpoint.Contract.Operations) { operation.Behaviors.Find <OperationBehaviorAttribute>().TransactionScopeRequired = true; } } } }
void IServiceBehavior.Validate(ServiceDescription description,ServiceHostBase host) { DurableServiceAttribute durable = new DurableServiceAttribute(); durable.SaveStateInOperationTransaction = true; description.Behaviors.Add(durable); PersistenceProviderFactory factory; if(AutoCompleteInstance) { factory = new TransactionalInstanceProviderFactory(); } else { factory = new TransactionalMemoryProviderFactory(); } PersistenceProviderBehavior persistenceBehavior = new PersistenceProviderBehavior(factory); description.Behaviors.Add(persistenceBehavior); if(TransactionRequiredAllOperations) { foreach(ServiceEndpoint endpoint in description.Endpoints) { foreach(OperationDescription operation in endpoint.Contract.Operations) { operation.Behaviors.Find<OperationBehaviorAttribute>().TransactionScopeRequired = true; } } } }