Добавить существующий экземпляр (объект) к единице - PullRequest
0 голосов
/ 18 июня 2010

я хочу добавить существующий объект в мой контейнер Unity, зарегистрированный для определенного интерфейса,

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

Я делаю это так:

public static void RegisterInstance<T>(T instance)
        {

            container.RegisterInstance<T>(instance);
        }

, где container - мой UnityContainer. Этот код находится в статическом классе с именем IoCContainer

Тогда мой звонок:

IoCContainer.RegisterInstance<IConfigurationRepository>(new MockConfigurationRepository(XML));

это похоже на работу, но когда я позже добавлю новый экземпляр, старый, похоже, будет храниться в памяти Unity. Поэтому, когда я позже захочу зарегистрировать объект B вместо объекта B (во время тестирования), а затем - регистр C, единица правильно разрешает C, но сохраняет в памяти B и A (и они довольно большие, поэтому я не заметил .

Есть ли способ удалить A и B из памяти Unity?

1 Ответ

0 голосов
/ 22 июня 2010

Что же, похоже, проблема не в том, что Unity содержит объект, а объект, созданный в приложении, которое использует этот объект, не дает ГХ собрать его.

Так что это не совсем ответ, но я не увидел ни одной кнопки удаления для моего вопроса ...

...