private void EnableTransparentPersistenceFor(IInternalObjectContainer container)
        {
            ITransparentActivationDepthProvider provider = (ITransparentActivationDepthProvider
                                                            )ActivationProvider(container);

            provider.EnableTransparentPersistenceSupportFor(container, _rollbackStrategy);
        }
Esempio n. 2
0
 public virtual void ActivateOn(Db4objects.Db4o.Internal.Transaction transaction,
                                ActivationPurpose purpose)
 {
     if (Activating())
     {
         return;
     }
     try
     {
         Activating(true);
         ObjectContainerBase container = transaction.Container();
         if (!(container.ActivationDepthProvider() is ITransparentActivationDepthProvider))
         {
             return;
         }
         ITransparentActivationDepthProvider provider = (ITransparentActivationDepthProvider
                                                         )container.ActivationDepthProvider();
         if (ActivationPurpose.Write == purpose)
         {
             lock (container.Lock())
             {
                 provider.AddModified(GetObject(), transaction);
             }
         }
         if (IsActive())
         {
             return;
         }
         lock (container.Lock())
         {
             Activate(transaction, GetObject(), new DescendingActivationDepth(provider, ActivationMode
                                                                              .Activate));
         }
     }
     finally
     {
         Activating(false);
     }
 }