StructureMap удаляет все удаленные ссылки на объекты, но оставляет конфигурацию - PullRequest
2 голосов
/ 15 апреля 2010

Hy, ребята,

В настоящее время я пытаюсь реализовать некоторые пользовательские циклы ILife для StructureMap. В зависимости от событий жизненный цикл связан со всеми объектами, которые должны быть удалены из жизненного цикла.

Вот регистрация объекта. Я получаю жизненный цикл от своего менеджера для типа плагина и конкретного типа, используя область для определения жизненного цикла.

registry.For(pluginType)
              .LifecycleIs(_lifecycleManager.GetLifecycle(pluginType, instance.GetType(), lifecycleScope))
              .Use(instance);

Я использую LifecycleManager для сохранения знаний о моих объектах, потому что мне нужно проверить, существуют ли объекты уже и создать / вернуть их, только если я передам createIfMissing = true.

        // determine if an instance already exists for the plugin type
        bool doesInstanceExist = _lifecycleManager.ContainsInstance(pluginType);

        if (createIfMissing)
        {
           // create a new instance or get an already existing one
           container = DependencyInjectionContainer.GetInstance<T>();
        }
        else
        {
           // only get an existing instance
           if (doesInstanceExist)
           {
              container = DependencyInjectionContainer.GetInstance<T>();
           }
        }

После того, как объект завершил свою работу или сработало связанное событие, экземпляр объекта следует удалить и утилизировать. Моя проблема в том, что я не могу найти способ удалить ссылки, содержащиеся в классе StructureMap.Profile, они всегда продолжают зависать.

Как я могу удалить все ссылки на мои объекты, но сохранить конфигурацию?

...