Skip to content

Commit fbc8a42

Browse files
committed
Removed Registration builder
1 parent 2adbf00 commit fbc8a42

File tree

13 files changed

+242
-226
lines changed

13 files changed

+242
-226
lines changed

src/Abstracts/IUnityContainer.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ public interface IUnityContainer : IDisposable
5555
/// <summary>
5656
/// Register <see cref="Type"/> factory with the container
5757
/// </summary>
58+
/// <remarks>
59+
/// This method allows to redister a <see cref="Func<IUnityContainer, Type, string, object>"/> delegate which will be called
60+
/// by the container if type is requested.
61+
/// </remarks>
5862
/// <param name="type"><see cref="Type"/> to register (may be an implemented interface instead of the actual type).</param>
5963
/// <param name="name">Name for registration</param>
6064
/// <param name="factory">Predefined <code>Func&lt;IUnityContainer, Type, string, object&gt;</code> to create types</param>

src/Abstracts/IUnityContainerAsync.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,13 @@ public interface IUnityContainerAsync : IDisposable
5454
/// <summary>
5555
/// Register <see cref="Type"/> factory with the container
5656
/// </summary>
57-
/// <param name="type"><see cref="Type"/> of instance to register (may be an implemented interface instead of the actual type).</param>
57+
/// <param name="interfaces">Collection of interfaces that <paramref name="factory"/> exposes to container</param>
5858
/// <param name="name">Name for registration</param>
5959
/// <param name="factory"></param>
6060
/// <param name="lifetimeManager">The <see cref="LifetimeManager"/> that controls the lifetime
6161
/// of the returned instance.</param>
6262
/// <returns>The <see cref="IUnityContainer"/> object that this method was called on.</returns>
63-
IUnityContainer RegisterFactory(Type type, string name, Func<IUnityContainer, Type, string, object> factory, IFactoryLifetimeManager lifetimeManager);
63+
IUnityContainer RegisterFactory(IEnumerable<Type> interfaces, string name, Func<IUnityContainer, Type, string, object> factory, IFactoryLifetimeManager lifetimeManager);
6464

6565

6666
/// <summary>

src/Extensions/Container/UnityContainer.cs

Lines changed: 148 additions & 0 deletions
Large diffs are not rendered by default.

src/Extensions/Injection/Inject.cs

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,26 +26,14 @@ public static InjectionParameter Parameter(Type type, object value)
2626
#endregion
2727

2828

29-
#region Dependency
30-
31-
//[MethodImpl(MethodImplOptions.AggressiveInlining)] public static InjectionMember Dependency(Type type, object value) => new InjectionDependency(type, value);
32-
//[MethodImpl(MethodImplOptions.AggressiveInlining)] public static InjectionMember Dependency<TTarget>(object value) => new InjectionDependency(typeof(TTarget), value);
33-
34-
//[MethodImpl(MethodImplOptions.AggressiveInlining)] public static InjectionMember Dependency(string name, object value) => new InjectionDependency(name, value);
35-
36-
//[MethodImpl(MethodImplOptions.AggressiveInlining)] public static InjectionMember Dependency(Type type, string name, object value) => new InjectionDependency(type, name, value);
37-
//[MethodImpl(MethodImplOptions.AggressiveInlining)] public static InjectionMember Dependency<TTarget>(string name, object value) => new InjectionDependency(typeof(TTarget), name, value);
38-
39-
#endregion
40-
41-
4229
#region Field
4330

4431
#if !NET40
4532
[MethodImpl(MethodImplOptions.AggressiveInlining)]
4633
#endif
4734
public static InjectionMember Field(string name, object value)
4835
=> new InjectionField(name ?? throw new ArgumentNullException(nameof(name)), value);
36+
4937
#endregion
5038

5139

@@ -56,6 +44,7 @@ public static InjectionMember Field(string name, object value)
5644
#endif
5745
public static InjectionMember Property(string name, object value)
5846
=> new InjectionProperty(name ?? throw new ArgumentNullException(nameof(name)), value);
47+
5948
#endregion
6049
}
6150
}

src/Extensions/Injection/Invoke.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ public static partial class Invoke
99
{
1010
#region Ctor
1111

12-
1312
#if !NET40
1413
[MethodImpl(MethodImplOptions.AggressiveInlining)]
1514
#endif

src/Extensions/Injection/Override.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,24 +14,43 @@ public static partial class Override
1414

1515
#region Field
1616

17+
#if !NET40
18+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
19+
#endif
1720
public static ResolverOverride Field(string name, object value) => new FieldOverride(name, value);
1821

1922
#endregion
2023

2124

2225
#region Parameter
2326

27+
#if !NET40
28+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
29+
#endif
2430
public static ResolverOverride Parameter<TType>(object value)
2531
=> Parameter(typeof(TType), value);
32+
33+
#if !NET40
34+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
35+
#endif
2636
public static ResolverOverride Parameter<TType>(string name, object value)
2737
=> Parameter(typeof(TType), name, value);
2838

39+
#if !NET40
40+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
41+
#endif
2942
public static ResolverOverride Parameter(Type type, object value)
3043
=> new ParameterOverride(type, value);
3144

45+
#if !NET40
46+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
47+
#endif
3248
public static ResolverOverride Parameter(Type type, string name, object value)
3349
=> new ParameterOverride(type, name, value);
3450

51+
#if !NET40
52+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
53+
#endif
3554
public static ResolverOverride Parameter(string name, object value)
3655
=> new ParameterOverride(name, value);
3756

@@ -41,12 +60,21 @@ public static ResolverOverride Parameter(string name, object value)
4160

4261
#region Dependency
4362

63+
#if !NET40
64+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
65+
#endif
4466
public static ResolverOverride Dependency(string name, object value)
4567
=> Dependency(value?.GetType() ?? throw new ArgumentNullException(nameof(value)), name, value);
4668

69+
#if !NET40
70+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
71+
#endif
4772
public static ResolverOverride Dependency<TType>(string name, object value)
4873
=> Dependency(typeof(TType), name, value);
4974

75+
#if !NET40
76+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
77+
#endif
5078
public static ResolverOverride Dependency(Type type, string name, object value)
5179
{
5280
return new DependencyOverride(type, name, value);

src/Extensions/Injection/Resolve.cs

Lines changed: 58 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Runtime.CompilerServices;
23
using Unity.Injection;
34

45
namespace Unity
@@ -7,69 +8,124 @@ public static partial class Resolve
78
{
89
#region Dependency
910

11+
#if !NET40
12+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
13+
#endif
1014
public static ParameterBase Dependency<TTarget>(string name) => new ResolvedParameter(typeof(TTarget), name);
1115

12-
//public static ParameterBase Dependency(string name) => new ResolvedParameter(name);
13-
1416
#endregion
1517

1618

1719
#region Parameter
1820

21+
#if !NET40
22+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
23+
#endif
1924
public static ParameterBase Parameter() => new ResolvedParameter();
2025

26+
#if !NET40
27+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
28+
#endif
2129
public static ParameterBase Parameter(string name) => new ResolvedParameter(name);
2230

31+
#if !NET40
32+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
33+
#endif
2334
public static ParameterBase Parameter(Type type) => new ResolvedParameter(type);
2435

36+
#if !NET40
37+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
38+
#endif
2539
public static ParameterBase Parameter<TTarget>() => new ResolvedParameter(typeof(TTarget));
2640

41+
#if !NET40
42+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
43+
#endif
2744
public static ParameterBase Parameter(Type type, string name) => new ResolvedParameter(type, name);
2845

46+
#if !NET40
47+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
48+
#endif
2949
public static ParameterBase Parameter<TTarget>(string name) => new ResolvedParameter(typeof(TTarget), name);
3050

3151
#endregion
3252

3353

3454
#region Generic
3555

56+
#if !NET40
57+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
58+
#endif
3659
public static GenericParameter Generic(string genericParameterName) => new GenericParameter(genericParameterName);
3760

61+
#if !NET40
62+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
63+
#endif
3864
public static GenericParameter Generic(string genericParameterName, string registrationName) => new GenericParameter(genericParameterName, registrationName);
3965

4066
#endregion
4167

4268

4369
#region Optional
4470

71+
#if !NET40
72+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
73+
#endif
4574
public static ParameterBase Optional() => new OptionalParameter();
4675

76+
#if !NET40
77+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
78+
#endif
4779
public static ParameterBase Optional(string name) => new OptionalParameter(name);
4880

81+
#if !NET40
82+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
83+
#endif
4984
public static ParameterBase Optional(Type type) => new OptionalParameter(type);
5085

86+
#if !NET40
87+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
88+
#endif
5189
public static ParameterBase Optional<TTarget>() => new OptionalParameter(typeof(TTarget));
5290

91+
#if !NET40
92+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
93+
#endif
5394
public static ParameterBase Optional(Type type, string name) => new OptionalParameter(type, name);
5495

96+
#if !NET40
97+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
98+
#endif
5599
public static ParameterBase Optional<TTarget>(string name) => new OptionalParameter(typeof(TTarget), name);
56100

57101
#endregion
58102

59103

60104
#region Field
61105

106+
#if !NET40
107+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
108+
#endif
62109
public static InjectionMember Field(string name) => new InjectionField(name);
63110

111+
#if !NET40
112+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
113+
#endif
64114
public static InjectionMember OptionalField(string name) => new InjectionField(name, true);
65115

66116
#endregion
67117

68118

69119
#region Property
70120

121+
#if !NET40
122+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
123+
#endif
71124
public static InjectionMember Property(string name) => new InjectionProperty(name ?? throw new ArgumentNullException(nameof(name)));
72125

126+
#if !NET40
127+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
128+
#endif
73129
public static InjectionMember OptionalProperty(string name) => new InjectionProperty(name ?? throw new ArgumentNullException(nameof(name)), true);
74130

75131
#endregion

src/Extensions/Reflection/LinqCompatibilityExtension.cs

Lines changed: 0 additions & 16 deletions
This file was deleted.

src/Extensions/Syntax/Type/Constructor.cs

Lines changed: 0 additions & 15 deletions
This file was deleted.

src/Extensions/Syntax/Type/Lifetime.cs

Lines changed: 0 additions & 83 deletions
This file was deleted.

0 commit comments

Comments
 (0)