Castle.MicroKernel.Releasers.AllComponentsReleasePolicy.Release C# (CSharp) Method

Release() public method

public Release ( object instance ) : void
instance object
return void
		public void Release(object instance)
		{
			if (instance == null) throw new ArgumentNullException("instance");

			using (var locker = @lock.ForReadingUpgradeable())
			{
				Burden burden;
				if (!instance2Burden.TryGetValue(instance, out burden))
					return;

				locker.Upgrade();
				if (!instance2Burden.TryGetValue(instance, out burden))
					return;

				if (instance2Burden.Remove(instance))
				{
					if (burden.Release(this) == false)
					{
						instance2Burden[instance] = burden;
					}
				}
			}
		}
AllComponentsReleasePolicy