Hy guys,
我目前正在尝试为StructureMap实现一些自定义ILifecycles。 根据事件,生命周期与所有对象相关联应从生命周期中删除。
这是对象的注册。 我从我的经理那里获得了一个生命周期的插件类型和具体类型,使用范围来确定生命周期。
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类所持有的引用,它们总是一直闲逛。
如何删除对象的所有引用但保留配置?