我想将现有对象添加到注册到特定接口的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上时,unity正确地解析C但是它将B和A保留在内存中(并且它们非常大,这就是为什么我注意到了
有没有办法从Unity的内存中删除A和B?
答案 0 :(得分:0)
嗯,似乎问题不在于Unity保存对象,而是在应用程序中创建的使用该对象的对象会阻止GC收集它。
所以这不是一个答案,但我没有看到任何删除按钮...