File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11using System ;
2+ using System . Collections . Generic ;
23using System . Diagnostics ;
4+ using System . Reflection ;
35using Unity . Extension ;
6+ using Unity . Factories ;
7+ using Unity . Policy ;
48
59namespace Unity
610{
@@ -44,6 +48,12 @@ protected override void Initialize()
4448 {
4549 ( ( UnityContainer ) Container ) . SetDefaultPolicies = UnityContainer . SetDiagnosticPolicies ;
4650 ( ( UnityContainer ) Container ) . SetDefaultPolicies ( ( UnityContainer ) Container ) ;
51+
52+ EnumerableResolver . EnumerableMethod = typeof ( EnumerableResolver ) . GetTypeInfo ( )
53+ . GetDeclaredMethod ( nameof ( EnumerableResolver . DiagnosticResolver ) ) ;
54+
55+ EnumerableResolver . EnumerableFactory = typeof ( EnumerableResolver ) . GetTypeInfo ( )
56+ . GetDeclaredMethod ( nameof ( EnumerableResolver . DiagnosticResolverFactory ) ) ;
4757 }
4858 }
4959
Original file line number Diff line number Diff line change @@ -11,11 +11,11 @@ public class EnumerableResolver
1111 {
1212 #region Fields
1313
14- private static readonly MethodInfo EnumerableMethod =
14+ internal static MethodInfo EnumerableMethod =
1515 typeof ( EnumerableResolver ) . GetTypeInfo ( )
1616 . GetDeclaredMethod ( nameof ( EnumerableResolver . Resolver ) ) ;
1717
18- private static readonly MethodInfo EnumerableFactory =
18+ internal static MethodInfo EnumerableFactory =
1919 typeof ( EnumerableResolver ) . GetTypeInfo ( )
2020 . GetDeclaredMethod ( nameof ( EnumerableResolver . ResolverFactory ) ) ;
2121
@@ -64,6 +64,19 @@ private static ResolveDelegate<BuilderContext> ResolverFactory<TElement>()
6464 return ( ref BuilderContext c ) => ( ( UnityContainer ) c . Container ) . ResolveEnumerable < TElement > ( c . Resolve , type , c . Name ) ;
6565 }
6666
67+
68+ internal static object DiagnosticResolver < TElement > ( ref BuilderContext context )
69+ {
70+ return ( ( UnityContainer ) context . Container ) . ResolveEnumerable < TElement > ( context . Resolve ,
71+ context . Name ) . ToArray ( ) ;
72+ }
73+
74+ internal static ResolveDelegate < BuilderContext > DiagnosticResolverFactory < TElement > ( )
75+ {
76+ Type type = typeof ( TElement ) . GetGenericTypeDefinition ( ) ;
77+ return ( ref BuilderContext c ) => ( ( UnityContainer ) c . Container ) . ResolveEnumerable < TElement > ( c . Resolve , type , c . Name ) . ToArray ( ) ;
78+ }
79+
6780 #endregion
6881
6982
You can’t perform that action at this time.
0 commit comments