I meet one problem that i can't solve now. I have the following:
UnityHelper.DefaultContainer.RegisterInstance(typeof(IMyInterface), "test", instance);
where UnityHelper.DefaultContainer
is my helper for getting unity container with loaded configuration.
here I registered instance
as an instance of IMyInterface
.
So anywhere( some time after using) I want to remove this mapping. Remove it at all. How I can do it?
I have tried:
UnityHelper.DefaultContainer.Teardown(instance)
but is was unsuccessful and the following code returns instance
anyway:
UnityHelper.DefaultContainer.ResolveAll<IMyInterface>()
I had the same problem and just removed the registrations of the ContainerControlledLifetimeManager
from my Container
:
foreach (var registration in container.Registrations .Where(p => p.RegisteredType == typeof(object) && p.Name == name && p.LifetimeManager.Type == typeof(ContainerControlledLifetimeManager))) { registration.LifetimeManager.RemoveValue(); }
I think that is what you are looking for.
var lifetimeManager = new TransientLifetimeManager(); UnityHelper.DefaultContainer.RegisterInstance(typeof(IMyInterface), "test", instance, lifetimeManager); lifetimeManager.RemoveValue();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With