Как проверить, что StructureMap правильно удаляет объекты - PullRequest
5 голосов
/ 04 апреля 2010

В настоящее время я использую StructureMap для внедрения экземпляров NHibernate ISessions, используя следующий код:

ObjectFactory.Initialize(x =>
{
    x.ForRequestedType<ISession>()
        .CacheBy(InstanceScope.PerRequest)
        .TheDefault.Is.ConstructedBy(y => NHibernateSessionManager.Instance.GetSession());    
});

Я предполагаю, что CacheBy (InstanceScope.PerRequest) будет правильно распоряжаться созданной им ISession, но я бы хотел убедиться. Какой самый простой способ проверить это?

1 Ответ

4 голосов
/ 04 апреля 2010

Хорошо, так что согласно документации StructureMap :

Также обратите внимание, что StructureMap предоставляет нет функциональности для очистки ресурсы объектов, удерживаемых контейнер (Container.EjectAllInstances () будет убрать одиночные объекты). к дата, я не нашел в этом необходимости поведение или функциональность. я обычно предполагают, что комбинация Основная сборка мусора и собственно дизайн класса достаточно.

Я знаю, что лучше всего вызывать ISession.Dispose () при использовании NHibernate, поэтому либо мне нужно вручную очистить его, либо просто полагаться на сборку мусора, чтобы сделать это для меня.

...