using Pure.DI;
DI.Setup("Composition")
.Root<Service>("My{type}");
var composition = new Composition();
var service = composition.MyService;
class Dependency;
class Service(Dependency dependency);
Running this code sample locally
- Make sure you have the .NET SDK 9.0 or later is installed
dotnet --list-sdk
- Create a net9.0 (or later) console application
dotnet new console -n Sample
- Add reference to NuGet package
dotnet add package Pure.DI
- Copy the example code into the Program.cs file
You are ready to run the example 🚀
dotnet run
The following partial class will be generated:
partial class Composition
{
private readonly Composition _root;
[OrdinalAttribute(256)]
public Composition()
{
_root = this;
}
internal Composition(Composition parentScope)
{
_root = (parentScope ?? throw new ArgumentNullException(nameof(parentScope)))._root;
}
public Service MyService
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
get
{
return new Service(new Dependency());
}
}
}
Class diagram:
---
config:
class:
hideEmptyMembersBox: true
---
classDiagram
Composition ..> Service : Service MyService
Service *-- Dependency : Dependency
namespace Pure.DI.UsageTests.Advanced.RootWithNameTemplateScenario {
class Composition {
<<partial>>
+Service MyService
}
class Dependency {
+Dependency()
}
class Service {
}
}