я хочу добавить существующий объект в мой контейнер 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?