Skip to content

Commit 1ec07e6

Browse files
committed
Releasing v5.6.0
1 parent 9d4a16c commit 1ec07e6

File tree

6 files changed

+22
-29
lines changed

6 files changed

+22
-29
lines changed

package.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
<Project>
22

33
<PropertyGroup>
4-
<Version>6.0.0</Version>
4+
<Version>5.6.0</Version>
55
<PackageReleaseNotes>This package is distributed as .NET Standard 1.0, .NET 4.0, 4.5, 4.7 package.</PackageReleaseNotes>
66
</PropertyGroup>
77

88
<PropertyGroup>
9-
<UnityAbstractionsVersion>3.*</UnityAbstractionsVersion>
9+
<UnityAbstractionsVersion>3.2.*</UnityAbstractionsVersion>
1010
</PropertyGroup>
1111

1212
</Project>

src/Container/Lifetime/ContainerLifetimeManager.cs

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using Unity.Builder;
2-
using Unity.Lifetime;
1+
using Unity.Lifetime;
32

43
namespace Unity.Container.Lifetime
54
{
@@ -13,25 +12,9 @@ namespace Unity.Container.Lifetime
1312
/// </remarks>
1413
internal class ContainerLifetimeManager : LifetimeManager
1514
{
16-
private object _value;
17-
1815
public override object GetValue(ILifetimeContainer container = null)
1916
{
20-
return _value;
21-
}
22-
23-
public override void SetValue(object newValue, ILifetimeContainer container = null)
24-
{
25-
_value = newValue;
26-
}
27-
28-
public override void RemoveValue(ILifetimeContainer container = null)
29-
{
30-
}
31-
32-
public object Resolve(IBuilderContext _)
33-
{
34-
return _value;
17+
return container.Container;
3518
}
3619

3720
protected override LifetimeManager OnCreateLifetimeManager()

src/Container/Lifetime/LifetimeContainer.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,18 @@ public class LifetimeContainer : ILifetimeContainer
2020
{
2121
private readonly List<object> _items = new List<object>();
2222

23+
public LifetimeContainer(IUnityContainer parent = null)
24+
{
25+
Container = parent;
26+
}
27+
28+
/// <summary>
29+
/// The IUnityContainer this container is associated with.
30+
/// </summary>
31+
/// <value>The <see cref="IUnityContainer"/> object.</value>
32+
public IUnityContainer Container { get; }
33+
34+
2335
/// <summary>
2436
/// Gets the number of references in the lifetime container
2537
/// </summary>

src/UnityContainer.Implementation.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,10 @@ private UnityContainer(UnityContainer parent)
7272
_buildPlanStrategies = new StagedStrategyChain<IBuilderStrategy, BuilderStage>(_parent?._buildPlanStrategies);
7373

7474
// Lifetime
75-
_lifetimeContainer = new LifetimeContainer { _strategies, _buildPlanStrategies };
75+
_lifetimeContainer = new LifetimeContainer(this) { _strategies, _buildPlanStrategies };
7676

7777
// Default Policies
78-
if (null == _parent) InitializeStrategies();
78+
if (null == _parent) InitializeRootContainer();
7979
_defaultPolicies = parent?._defaultPolicies ?? GetDefaultPolicies();
8080
this[null, null] = _defaultPolicies;
8181

@@ -86,17 +86,14 @@ private UnityContainer(UnityContainer parent)
8686
// Caches
8787
OnStrategiesChanged(this, null);
8888
_strategies.Invalidated += OnStrategiesChanged;
89-
90-
// Register this instance
91-
RegisterInstance(typeof(IUnityContainer), null, this, new ContainerLifetimeManager());
9289
}
9390

9491
#endregion
9592

9693

9794
#region Defaults
9895

99-
protected void InitializeStrategies()
96+
protected void InitializeRootContainer()
10097
{
10198
// Main strategy chain
10299
_strategies.Add(new BuildKeyMappingStrategy(), UnityBuildStage.TypeMapping);
@@ -119,6 +116,8 @@ protected void InitializeStrategies()
119116
this[typeof(IEnumerable<>), string.Empty, typeof(IBuildPlanCreatorPolicy)] =
120117
new DelegateBasedBuildPlanCreatorPolicy(typeof(UnityContainer).GetTypeInfo().GetDeclaredMethod(nameof(ResolveEnumerable)),
121118
context => context.BuildKey.Type.GetTypeInfo().GenericTypeArguments.First());
119+
// Register this instance
120+
RegisterInstance(typeof(IUnityContainer), null, this, new ContainerLifetimeManager());
122121
}
123122

124123

src/UnityContainer.Public.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public IUnityContainer RemoveAllExtensions()
8787
((IPolicyList)_context).ClearAll();
8888

8989
if (null == _parent)
90-
InitializeStrategies();
90+
InitializeRootContainer();
9191

9292
return this;
9393
}

src/UnityContainer.Registration.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
using Unity.Policy;
1010
using Unity.Registration;
1111
using Unity.Storage;
12-
using Unity.Strategy;
1312

1413
namespace Unity
1514
{

0 commit comments

Comments
 (0)