Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
NikolayPianikov committed Mar 13, 2024
1 parent 8fc81c5 commit 315fa56
Show file tree
Hide file tree
Showing 13 changed files with 69 additions and 76 deletions.
2 changes: 1 addition & 1 deletion readme/ArrayDetails.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ classDiagram
Service3v3 *-- Service4 : IService4
Service3v4 *-- Service4 : IService4
Service3v4 *-- Service4 : IService4
Array ..> CompositionRoot : CompositionRoot PureDIByCR()<br/>CompositionRoot
Array ..> CompositionRoot : CompositionRoot PureDIByCR()<br/>provides CompositionRoot
```

### Generated code
Expand Down
2 changes: 1 addition & 1 deletion readme/EnumDetails.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ classDiagram
Service3v3 *-- Service4 : IService4
Service3v4 *-- Service4 : IService4
Service3v4 *-- Service4 : IService4
Enum ..> CompositionRoot : CompositionRoot PureDIByCR()<br/>CompositionRoot
Enum ..> CompositionRoot : CompositionRoot PureDIByCR()<br/>provides CompositionRoot
```

### Generated code
Expand Down
2 changes: 1 addition & 1 deletion readme/FuncDetails.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ classDiagram
Service2Func o-- "PerBlock" FuncᐸIService3ᐳ : FuncᐸIService3ᐳ
Service3 *-- Service4 : IService4
Service3 *-- Service4 : IService4
Func ..> CompositionRoot : CompositionRoot PureDIByCR()<br/>CompositionRoot
Func ..> CompositionRoot : CompositionRoot PureDIByCR()<br/>provides CompositionRoot
FuncᐸIService3ᐳ *-- Service3 : IService3
```

Expand Down
2 changes: 1 addition & 1 deletion readme/SingletonDetails.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ classDiagram
Service2 *-- Service3 : IService3
Service3 o-- "Scoped" Service4 : IService4
Service3 o-- "Scoped" Service4 : IService4
Singleton ..> CompositionRoot : CompositionRoot PureDIByCR()<br/>CompositionRoot
Singleton ..> CompositionRoot : CompositionRoot PureDIByCR()<br/>provides CompositionRoot
```

### Generated code
Expand Down
2 changes: 1 addition & 1 deletion readme/TransientDetails.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ classDiagram
Service2 *-- Service3 : IService3
Service3 *-- Service4 : IService4
Service3 *-- Service4 : IService4
Transient ..> CompositionRoot : CompositionRoot PureDIByCR()<br/>CompositionRoot
Transient ..> CompositionRoot : CompositionRoot PureDIByCR()<br/>provides CompositionRoot
```

### Generated code
Expand Down
2 changes: 1 addition & 1 deletion readme/check-for-a-root.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ classDiagram
/// </item>
/// <item>
/// <term>
/// <see cref="Pure.DI.UsageTests.Basics.CheckForRootScenario.IDependency"/> is a private composition root that can be resolved by methods like <see cref="Resolve{T}()"/>.<br/>or using <see cref="Resolve{T}(object)"/> method: <c>Resolve&lt;Pure.DI.UsageTests.Basics.CheckForRootScenario.IDependency&gt;("MyDep")</c>
/// Private composition root of type <see cref="Pure.DI.UsageTests.Basics.CheckForRootScenario.IDependency"/>. It can be resolved by <see cref="Resolve{T}(object)"/> method: <c>Resolve&lt;Pure.DI.UsageTests.Basics.CheckForRootScenario.IDependency&gt;("MyDep")</c>
/// </term>
/// <description>
/// Provides a composition root of type <see cref="Pure.DI.UsageTests.Basics.CheckForRootScenario.Dependency"/>.
Expand Down
2 changes: 1 addition & 1 deletion readme/composition-roots.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ classDiagram
/// </item>
/// <item>
/// <term>
/// <see cref="Pure.DI.UsageTests.Basics.CompositionRootsScenario.IDependency"/> is a private composition root that can be resolved by methods like <see cref="Resolve{T}()"/>.<br/>or using <see cref="Resolve{T}()"/> method: <c>Resolve&lt;Pure.DI.UsageTests.Basics.CompositionRootsScenario.IDependency&gt;()</c>
/// Private composition root of type <see cref="Pure.DI.UsageTests.Basics.CompositionRootsScenario.IDependency"/>. It can be resolved by <see cref="Resolve{T}()"/> method: <c>Resolve&lt;Pure.DI.UsageTests.Basics.CompositionRootsScenario.IDependency&gt;()</c>
/// </term>
/// <description>
/// Specifies to create a private composition root<br/>
Expand Down
4 changes: 2 additions & 2 deletions readme/keyed-service-provider.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,15 +91,15 @@ classDiagram
/// </listheader>
/// <item>
/// <term>
/// <see cref="Pure.DI.UsageTests.BCL.KeyedServiceProviderScenario.IDependency"/> is a private composition root that can be resolved by methods like <see cref="Resolve{T}()"/>.<br/>or using <see cref="Resolve{T}(object)"/> method: <c>Resolve&lt;Pure.DI.UsageTests.BCL.KeyedServiceProviderScenario.IDependency&gt;("Dependency Key")</c>
/// Private composition root of type <see cref="Pure.DI.UsageTests.BCL.KeyedServiceProviderScenario.IDependency"/>. It can be resolved by <see cref="Resolve{T}(object)"/> method: <c>Resolve&lt;Pure.DI.UsageTests.BCL.KeyedServiceProviderScenario.IDependency&gt;("Dependency Key")</c>
/// </term>
/// <description>
/// Provides a composition root of type <see cref="Pure.DI.UsageTests.BCL.KeyedServiceProviderScenario.Dependency"/>.
/// </description>
/// </item>
/// <item>
/// <term>
/// <see cref="Pure.DI.UsageTests.BCL.KeyedServiceProviderScenario.IService"/> is a private composition root that can be resolved by methods like <see cref="Resolve{T}()"/>.<br/>or using <see cref="Resolve{T}(object)"/> method: <c>Resolve&lt;Pure.DI.UsageTests.BCL.KeyedServiceProviderScenario.IService&gt;("Service Key")</c>
/// Private composition root of type <see cref="Pure.DI.UsageTests.BCL.KeyedServiceProviderScenario.IService"/>. It can be resolved by <see cref="Resolve{T}(object)"/> method: <c>Resolve&lt;Pure.DI.UsageTests.BCL.KeyedServiceProviderScenario.IService&gt;("Service Key")</c>
/// </term>
/// <description>
/// Provides a composition root of type <see cref="Pure.DI.UsageTests.BCL.KeyedServiceProviderScenario.Service"/>.
Expand Down
97 changes: 45 additions & 52 deletions readme/resolve-methods.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ class OtherService : IService;

DI.Setup(nameof(Composition))
.Bind<IDependency>().To<Dependency>()
// Specifies to create a regular public composition root
// of type "IDependency" with the name "DependencySingleton"
.Root<IDependency>("DependencySingleton")
// Specifies to create a private composition root
// of type "IDependency" with the name "Dependency"
.Root<IDependency>()
.Bind<IService>().To<Service>()
// Specifies to create a private root
// that is only accessible from _Resolve_ methods
Expand All @@ -45,8 +45,8 @@ var otherService2 = composition.Resolve(typeof(IService),"Other");
```mermaid
classDiagram
class Composition {
+IDependency DependencySingleton
+IService OtherService
-IDependency RootM03D13di0001
-IService RootM03D13di0002
+ T ResolveᐸTᐳ()
+ T ResolveᐸTᐳ(object? tag)
Expand All @@ -72,7 +72,7 @@ classDiagram
<<abstract>>
}
Service *-- Dependency : IDependency
Composition ..> Dependency : IDependency DependencySingleton<br/>provides IDependency
Composition ..> Dependency : IDependency RootM03D13di0001<br/>provides IDependency
Composition ..> Service : IService RootM03D13di0002<br/>provides IService
Composition ..> OtherService : IService OtherService<br/>provides "Other" IService
```
Expand All @@ -92,25 +92,25 @@ classDiagram
/// </listheader>
/// <item>
/// <term>
/// <see cref="Pure.DI.UsageTests.Basics.ResolveScenario.IDependency"/> <see cref="DependencySingleton"/><br/>or using <see cref="Resolve{T}()"/> method: <c>Resolve&lt;Pure.DI.UsageTests.Basics.ResolveScenario.IDependency&gt;()</c>
/// <see cref="Pure.DI.UsageTests.Basics.ResolveScenario.IService"/> <see cref="OtherService"/><br/>or using <see cref="Resolve{T}(object)"/> method: <c>Resolve&lt;Pure.DI.UsageTests.Basics.ResolveScenario.IService&gt;("Other")</c>
/// </term>
/// <description>
/// Specifies to create a regular public composition root<br/>
/// of type "IDependency" with the name "DependencySingleton"
/// Specifies to create a public root named _OtherService_<br/>
/// using the _Other_ tag
/// </description>
/// </item>
/// <item>
/// <term>
/// <see cref="Pure.DI.UsageTests.Basics.ResolveScenario.IService"/> <see cref="OtherService"/><br/>or using <see cref="Resolve{T}(object)"/> method: <c>Resolve&lt;Pure.DI.UsageTests.Basics.ResolveScenario.IService&gt;("Other")</c>
/// Private composition root of type <see cref="Pure.DI.UsageTests.Basics.ResolveScenario.IDependency"/>. It can be resolved by <see cref="Resolve{T}()"/> method: <c>Resolve&lt;Pure.DI.UsageTests.Basics.ResolveScenario.IDependency&gt;()</c>
/// </term>
/// <description>
/// Specifies to create a public root named _OtherService_<br/>
/// using the _Other_ tag
/// Specifies to create a private composition root<br/>
/// of type "IDependency" with the name "Dependency"
/// </description>
/// </item>
/// <item>
/// <term>
/// <see cref="Pure.DI.UsageTests.Basics.ResolveScenario.IService"/> is a private composition root that can be resolved by methods like <see cref="Resolve{T}()"/>.<br/>or using <see cref="Resolve{T}()"/> method: <c>Resolve&lt;Pure.DI.UsageTests.Basics.ResolveScenario.IService&gt;()</c>
/// Private composition root of type <see cref="Pure.DI.UsageTests.Basics.ResolveScenario.IService"/>. It can be resolved by <see cref="Resolve{T}()"/> method: <c>Resolve&lt;Pure.DI.UsageTests.Basics.ResolveScenario.IService&gt;()</c>
/// </term>
/// <description>
/// Specifies to create a private root<br/>
Expand All @@ -121,13 +121,13 @@ classDiagram
/// </para>
/// </summary>
/// <example>
/// This shows how to get an instance of type <see cref="Pure.DI.UsageTests.Basics.ResolveScenario.Dependency"/> using the composition root <see cref="DependencySingleton"/>:
/// This shows how to get an instance of type <see cref="Pure.DI.UsageTests.Basics.ResolveScenario.OtherService"/> using the composition root <see cref="OtherService"/>:
/// <code>
/// var composition = new Composition();
/// var instance = composition.DependencySingleton;
/// var instance = composition.OtherService;
/// </code>
/// </example>
/// <a href="https://mermaid.live/view#pako:eNqdVEtuwjAQvYrldaWmZEHLDhIqdVFVApbemHhE3ZI4clwkhLgDd-mm1-EmTWwgE5NA6WY09nze05uxNzRRAuiAJkteFLHkC81TpllmzyRSaa4KaaTKCPsKgv6oilVeb_QSQw6ZgCxZk9qdymyxBKMylDgFvZIJkDfzDvpwOIXjU3iilHkNwvghFDIoI3UHMiMTKNRyBfvdz2y_-7bXj9Y-XU1T8w9ITOWHz8TwxVmZSzjWuqLZOgdiSvOP7IhchuzHlYfkc0LUth_Z0jHBGturIamH48XwbOpQm1IO_yh7NzjOaCDjAIY9ztZiYu6iycdjgvfiBjrU1jGKiJ11wuwa69cpi2vkC1_3CR2fiM8Lo_lhyOODbevUTufvbRrCDLE8xF-BUhVEvCr2H3DPQjhbanqxvvVVW9Jzze5dh1yrlRRQ3IjrjbL7C-iEQ9_IFayzncCA_k60gtWbhmHpHU1Bp1yK8vvcMFqmpMDogFHB9SejW7r9BbbN0GE">Class diagram</a><br/>
/// <a href="https://mermaid.live/view#pako:eNqdVEFuwjAQ_Irlc6UGcqDlBgmVOFSVKEdfTLKibkkcOS4SQvyBv_TS7_CTJjZpNk4CpZeV7d3ZGY3X3tNIxkDHNNrwPA8FXyueMMVSsyeBTDKZCy1kStin542mZa5cDafzV1BbEQF50W-gzpvfdDgPIYM0hjTakYWU-tnzw4EfC8_zBqiqauKUDGsesiQLyOVmC6fj9_J0_DLHDyY-Xi2Tq3eIdLn2n4jm6xbMFlRYC1ruMiC6CP-oDshlylFYrpA51og6jgIDnRHsoDmakPpmnBy-mDrV5ZTlr2zvJ8cVDWacwLTVBBhOrD1u6nGU4Om5QQ41OEaRsFYnrK4xpL222Eau8XUf3-oJ-CrXip8veXaOXZ265fy9TcOYCbaHuCNQuIKEl2D39Q4NhY2Fpxfx7TdrFK8Uu7fwTMmtiCG_kdS5x_7330uHfporXK2BwITuQHSS1WOGaekdTUAlXMTFx7lntChJgNExozFXH4we6OEHt7_KEw">Class diagram</a><br/>
/// This class was created by <a href="https://github.com/DevTeam/Pure.DI">Pure.DI</a> source code generator.
/// <seealso cref="Pure.DI.DI.Setup"/>
/// <seealso cref="Pure.DI.IConfiguration.Bind(object[])"/>
Expand Down Expand Up @@ -156,46 +156,39 @@ partial class Composition

#region Composition Roots
/// <summary>
/// Specifies to create a regular public composition root<br/>
/// of type "IDependency" with the name "DependencySingleton"
/// Specifies to create a public root named _OtherService_<br/>
/// using the _Other_ tag
/// </summary>
/// <example>
/// This shows how to get an instance of type <see cref="Pure.DI.UsageTests.Basics.ResolveScenario.Dependency"/>:
/// This shows how to get an instance of type <see cref="Pure.DI.UsageTests.Basics.ResolveScenario.OtherService"/>:
/// <code>
/// var composition = new Composition();
/// var instance = composition.DependencySingleton;
/// var instance = composition.OtherService;
/// </code>
/// </example>
public Pure.DI.UsageTests.Basics.ResolveScenario.IDependency DependencySingleton
public Pure.DI.UsageTests.Basics.ResolveScenario.IService OtherService
{
#if NETSTANDARD2_0_OR_GREATER || NETCOREAPP || NET40_OR_GREATER || NET
[global::System.Diagnostics.Contracts.Pure]
#endif
get
{
return new Pure.DI.UsageTests.Basics.ResolveScenario.Dependency();
return new Pure.DI.UsageTests.Basics.ResolveScenario.OtherService();
}
}

/// <summary>
/// Specifies to create a public root named _OtherService_<br/>
/// using the _Other_ tag
/// Specifies to create a private composition root<br/>
/// of type "IDependency" with the name "Dependency"
/// </summary>
/// <example>
/// This shows how to get an instance of type <see cref="Pure.DI.UsageTests.Basics.ResolveScenario.OtherService"/>:
/// <code>
/// var composition = new Composition();
/// var instance = composition.OtherService;
/// </code>
/// </example>
public Pure.DI.UsageTests.Basics.ResolveScenario.IService OtherService
public Pure.DI.UsageTests.Basics.ResolveScenario.IDependency RootM03D13di0001
{
#if NETSTANDARD2_0_OR_GREATER || NETCOREAPP || NET40_OR_GREATER || NET
[global::System.Diagnostics.Contracts.Pure]
#endif
get
{
return new Pure.DI.UsageTests.Basics.ResolveScenario.OtherService();
return new Pure.DI.UsageTests.Basics.ResolveScenario.Dependency();
}
}

Expand Down Expand Up @@ -299,8 +292,8 @@ partial class Composition
return
"classDiagram\n" +
" class Composition {\n" +
" +IDependency DependencySingleton\n" +
" +IService OtherService\n" +
" -IDependency RootM03D13di0001\n" +
" -IService RootM03D13di0002\n" +
" + T ResolveᐸTᐳ()\n" +
" + T ResolveᐸTᐳ(object? tag)\n" +
Expand All @@ -326,7 +319,7 @@ partial class Composition
" <<abstract>>\n" +
" }\n" +
" Service *-- Dependency : IDependency\n" +
" Composition ..> Dependency : IDependency DependencySingleton<br/>provides IDependency\n" +
" Composition ..> Dependency : IDependency RootM03D13di0001<br/>provides IDependency\n" +
" Composition ..> Service : IService RootM03D13di0002<br/>provides IService\n" +
" Composition ..> OtherService : IService OtherService<br/>provides \"Other\" IService";
}
Expand All @@ -337,16 +330,16 @@ partial class Composition
static Composition()
{
var valResolverM03D13di_0000 = new ResolverM03D13di_0000();
ResolverM03D13di<Pure.DI.UsageTests.Basics.ResolveScenario.IDependency>.Value = valResolverM03D13di_0000;
ResolverM03D13di<Pure.DI.UsageTests.Basics.ResolveScenario.IService>.Value = valResolverM03D13di_0000;
var valResolverM03D13di_0001 = new ResolverM03D13di_0001();
ResolverM03D13di<Pure.DI.UsageTests.Basics.ResolveScenario.IService>.Value = valResolverM03D13di_0001;
ResolverM03D13di<Pure.DI.UsageTests.Basics.ResolveScenario.IDependency>.Value = valResolverM03D13di_0001;
_bucketsM03D13di = global::Pure.DI.Buckets<global::System.Type, global::Pure.DI.IResolver<Composition, object>>.Create(
4,
out _bucketSizeM03D13di,
new global::Pure.DI.Pair<global::System.Type, global::Pure.DI.IResolver<Composition, object>>[2]
{
new global::Pure.DI.Pair<global::System.Type, global::Pure.DI.IResolver<Composition, object>>(typeof(Pure.DI.UsageTests.Basics.ResolveScenario.IDependency), valResolverM03D13di_0000)
,new global::Pure.DI.Pair<global::System.Type, global::Pure.DI.IResolver<Composition, object>>(typeof(Pure.DI.UsageTests.Basics.ResolveScenario.IService), valResolverM03D13di_0001)
new global::Pure.DI.Pair<global::System.Type, global::Pure.DI.IResolver<Composition, object>>(typeof(Pure.DI.UsageTests.Basics.ResolveScenario.IService), valResolverM03D13di_0000)
,new global::Pure.DI.Pair<global::System.Type, global::Pure.DI.IResolver<Composition, object>>(typeof(Pure.DI.UsageTests.Basics.ResolveScenario.IDependency), valResolverM03D13di_0001)
});
}

Expand All @@ -366,41 +359,41 @@ partial class Composition
}
}

private sealed class ResolverM03D13di_0000: global::Pure.DI.IResolver<Composition, Pure.DI.UsageTests.Basics.ResolveScenario.IDependency>
private sealed class ResolverM03D13di_0000: global::Pure.DI.IResolver<Composition, Pure.DI.UsageTests.Basics.ResolveScenario.IService>
{
public Pure.DI.UsageTests.Basics.ResolveScenario.IDependency Resolve(Composition composition)
public Pure.DI.UsageTests.Basics.ResolveScenario.IService Resolve(Composition composition)
{
return composition.DependencySingleton;
return composition.RootM03D13di0002;
}

public Pure.DI.UsageTests.Basics.ResolveScenario.IDependency ResolveByTag(Composition composition, object tag)
public Pure.DI.UsageTests.Basics.ResolveScenario.IService ResolveByTag(Composition composition, object tag)
{
switch (tag)
{
case "Other":
return composition.OtherService;
case null:
return composition.DependencySingleton;
return composition.RootM03D13di0002;
}
throw new global::System.InvalidOperationException($"Cannot resolve composition root \"{tag}\" of type Pure.DI.UsageTests.Basics.ResolveScenario.IDependency.");
throw new global::System.InvalidOperationException($"Cannot resolve composition root \"{tag}\" of type Pure.DI.UsageTests.Basics.ResolveScenario.IService.");
}
}

private sealed class ResolverM03D13di_0001: global::Pure.DI.IResolver<Composition, Pure.DI.UsageTests.Basics.ResolveScenario.IService>
private sealed class ResolverM03D13di_0001: global::Pure.DI.IResolver<Composition, Pure.DI.UsageTests.Basics.ResolveScenario.IDependency>
{
public Pure.DI.UsageTests.Basics.ResolveScenario.IService Resolve(Composition composition)
public Pure.DI.UsageTests.Basics.ResolveScenario.IDependency Resolve(Composition composition)
{
return composition.RootM03D13di0002;
return composition.RootM03D13di0001;
}

public Pure.DI.UsageTests.Basics.ResolveScenario.IService ResolveByTag(Composition composition, object tag)
public Pure.DI.UsageTests.Basics.ResolveScenario.IDependency ResolveByTag(Composition composition, object tag)
{
switch (tag)
{
case "Other":
return composition.OtherService;
case null:
return composition.RootM03D13di0002;
return composition.RootM03D13di0001;
}
throw new global::System.InvalidOperationException($"Cannot resolve composition root \"{tag}\" of type Pure.DI.UsageTests.Basics.ResolveScenario.IService.");
throw new global::System.InvalidOperationException($"Cannot resolve composition root \"{tag}\" of type Pure.DI.UsageTests.Basics.ResolveScenario.IDependency.");
}
}
#endregion
Expand Down
4 changes: 2 additions & 2 deletions readme/service-collection.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,15 +88,15 @@ classDiagram
/// </listheader>
/// <item>
/// <term>
/// <see cref="Pure.DI.UsageTests.BCL.ServiceCollectionScenario.IDependency"/> is a private composition root that can be resolved by methods like <see cref="Resolve{T}()"/>.<br/>or using <see cref="Resolve{T}(object)"/> method: <c>Resolve&lt;Pure.DI.UsageTests.BCL.ServiceCollectionScenario.IDependency&gt;("Dependency Key")</c>
/// Private composition root of type <see cref="Pure.DI.UsageTests.BCL.ServiceCollectionScenario.IDependency"/>. It can be resolved by <see cref="Resolve{T}(object)"/> method: <c>Resolve&lt;Pure.DI.UsageTests.BCL.ServiceCollectionScenario.IDependency&gt;("Dependency Key")</c>
/// </term>
/// <description>
/// Provides a composition root of type <see cref="Pure.DI.UsageTests.BCL.ServiceCollectionScenario.Dependency"/>.
/// </description>
/// </item>
/// <item>
/// <term>
/// <see cref="Pure.DI.UsageTests.BCL.ServiceCollectionScenario.IService"/> is a private composition root that can be resolved by methods like <see cref="Resolve{T}()"/>.<br/>or using <see cref="Resolve{T}()"/> method: <c>Resolve&lt;Pure.DI.UsageTests.BCL.ServiceCollectionScenario.IService&gt;()</c>
/// Private composition root of type <see cref="Pure.DI.UsageTests.BCL.ServiceCollectionScenario.IService"/>. It can be resolved by <see cref="Resolve{T}()"/> method: <c>Resolve&lt;Pure.DI.UsageTests.BCL.ServiceCollectionScenario.IService&gt;()</c>
/// </term>
/// <description>
/// Provides a composition root of type <see cref="Pure.DI.UsageTests.BCL.ServiceCollectionScenario.Service"/>.
Expand Down
Loading

0 comments on commit 315fa56

Please sign in to comment.