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;
               }
            }
         }
      }