private void InstallFixture(ITransactionManager transactionManager, IContainerInjector injector, object fixture)
        {
            injector.InitDomainObject(fixture);

            // first, install any child fixtures (if this is a composite.
            var childFixtures = GetFixtures(fixture);

            InstallFixtures(transactionManager, injector, childFixtures);

            // now, install the fixture itself
            try {
                Log.Info("installing fixture: " + fixture);
                transactionManager.StartTransaction();
                InstallFixture(fixture);
                transactionManager.EndTransaction();
                Log.Info("fixture installed");
            }
            catch (Exception e) {
                Log.Error("installing fixture " + fixture.GetType().FullName + " failed (" + e.Message + "); aborting fixture ", e);
                try {
                    transactionManager.AbortTransaction();
                }
                catch (Exception e2) {
                    Log.Error("failure during abort", e2);
                }
                throw;
            }
        }
 private void InitDomainObject(object obj)
 {
     Log.DebugFormat("InitDomainObject: {0}", obj);
     injector.InitDomainObject(obj);
 }