Skip to content

Commit 017201d

Browse files
author
d.popov
committed
SingleInstanceResolver fix
1 parent b6a7a22 commit 017201d

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

Bridge.Ioc/Resolvers/SingleInstanceResolver.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,27 @@
11
using System;
2+
using System.Collections.Generic;
23

34
namespace Bridge.Ioc
45
{
56
public class SingleInstanceResolver : IResolver
67
{
7-
private object _singleInstance;
8+
private static Dictionary<Type, object> _singleInstances = new Dictionary<Type, object>();
89

910
public Func<object> Resolve { get; private set; }
1011

1112
public SingleInstanceResolver(IIoc ioc, Type type)
1213
{
1314
Resolve = () =>
1415
{
16+
object singleInstance;
1517
// first resolve. Using transient resolver
16-
if (_singleInstance == null)
18+
if (!_singleInstances.TryGetValue(type, out singleInstance))
1719
{
1820
var transientResolver = new TransientResolver(ioc, type);
19-
_singleInstance = transientResolver.Resolve();
21+
singleInstance = transientResolver.Resolve();
22+
_singleInstances.Add(type, singleInstance);
2023
}
21-
22-
return _singleInstance;
24+
return singleInstance;
2325
};
2426
}
2527
}

0 commit comments

Comments
 (0)