How to remove(unregister) registered instance from Unity mapping?

c#, instance, ioc-container, registering, unity-container

Solution

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();
}

Problem

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>() ```

Original source