Skip to content

Commit 702860b

Browse files
committed
Merge branch 'master' of https://github.com/unitycontainer/container into v5.x
2 parents ef49343 + d1be940 commit 702860b

File tree

4 files changed

+7
-6
lines changed

4 files changed

+7
-6
lines changed

src/Strategies/LifetimeStrategy.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public override void PreBuildUp(ref BuilderContext context)
6565
context.RequiresRecovery = recoveryPolicy;
6666

6767
var existing = policy.GetValue(context.Lifetime);
68-
if (existing != null)
68+
if (LifetimeManager.NoValue != existing)
6969
{
7070
context.Existing = existing;
7171
context.BuildComplete = true;

src/UnityContainer.IUnityContainer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ IUnityContainer IUnityContainer.RegisterInstance(Type type, string name, object
114114
try
115115
{
116116
// Validate input
117-
if (null == instance) throw new ArgumentNullException(nameof(instance));
117+
if (null == typeFrom) throw new InvalidOperationException($"At least one of Type arguments '{nameof(type)}' or '{nameof(instance)}' must be not 'null'");
118118

119119
if (null == lifetimeManager) lifetimeManager = new ContainerControlledLifetimeManager();
120120
if (((LifetimeManager)lifetimeManager).InUse) throw new InvalidOperationException(LifetimeManagerInUse);

src/UnityContainer.Resolution.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,7 @@ object GetPerResolveValue(IntPtr parent, Type registrationType, string name)
440440

441441
var lifetimeManager = (LifetimeManager)parentRef.Get(typeof(LifetimeManager));
442442
var result = lifetimeManager?.GetValue();
443-
if (null != result) return result;
443+
if (LifetimeManager.NoValue != result) return result;
444444

445445
throw new InvalidOperationException($"Circular reference for Type: {parentRef.Type}, Name: {parentRef.Name}",
446446
new CircularDependencyException());

tests/Unity.Tests/Container/ContainerControlledLifetimeThreadingFixture.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ namespace Unity.Tests.v5.Container
1414
public class ContainerControlledLifetimeThreadingFixture
1515
{
1616
[TestMethod]
17-
public void ContainerControlledLifetimeReturnsSameInstanceFromMultipleThreads()
17+
public void SameInstanceFromMultipleThreads()
1818
{
1919
IUnityContainer container = new UnityContainer();
2020
container.AddExtension(new SpyExtension(new DelayStrategy(), UnityBuildStage.Lifetime));
@@ -23,12 +23,12 @@ public void ContainerControlledLifetimeReturnsSameInstanceFromMultipleThreads()
2323
object result1 = null;
2424
object result2 = null;
2525

26-
Thread thread1 = new Thread(delegate()
26+
Thread thread1 = new Thread(delegate ()
2727
{
2828
result1 = container.Resolve<object>();
2929
});
3030

31-
Thread thread2 = new Thread(delegate()
31+
Thread thread2 = new Thread(delegate ()
3232
{
3333
result2 = container.Resolve<object>();
3434
});
@@ -46,6 +46,7 @@ public void ContainerControlledLifetimeReturnsSameInstanceFromMultipleThreads()
4646
Assert.AreSame(result1, result2);
4747
}
4848

49+
4950
[TestMethod]
5051
public void ContainerControlledLifetimeDoesNotLeaveHangingLockIfBuildThrowsException()
5152
{

0 commit comments

Comments
 (0)