diff --git a/README.md b/README.md
index cc6969455..9404369b2 100644
--- a/README.md
+++ b/README.md
@@ -905,17 +905,17 @@ Thank you for your interest in contributing to the _Pure.DI_ project! First of a
This project uses the "build as code" approach using [csharp-interactive](https://github.com/DevTeam/csharp-interactive). The entire build logic is a regular [console .NET application](/build). You can use the [build.cmd](/build.cmd) and [build.sh](/build.sh) files with the appropriate command in the parameters to perform all basic actions on the project, e.g:
-| Command | Description |
-|----------------|-------------------------------|
-| g, generator | Builds and tests generator |
-| l, libs | Builds and tests libraries |
-| c, check | Compatibility checks |
-| p, pack | Creates NuGet packages |
-| r, readme | Generates README.md |
-| benchmarks, bm | Runs benchmarks |
-| deploy, dp | Deploys packages |
-| t, template | Creates and deploys templates |
-| u, update | Updates internal DI version |
+| Command | Description |
+|----------------|-------------------------------------------------------------------|
+| g, generator | Builds and tests generator |
+| l, libs | Builds and tests libraries |
+| c, check | Compatibility checks |
+| p, pack | Creates NuGet packages |
+| r, readme | Generates README.md |
+| benchmarks, bm | Runs benchmarks |
+| deploy, dp | Deploys packages |
+| t, template | Creates and deploys templates |
+| u, upgrade | Upgrading the internal version of DI to the latest public version |
For example:
diff --git a/readme/BlazorServerApp.md b/readme/BlazorServerApp.md
index dcc0b311e..58c821fc2 100644
--- a/readme/BlazorServerApp.md
+++ b/readme/BlazorServerApp.md
@@ -72,7 +72,7 @@ The [project file](/samples/BlazorServerApp/BlazorServerApp.csproj) looks like t
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/readme/BlazorWebAssemblyApp.md b/readme/BlazorWebAssemblyApp.md
index bba3ac50c..15646f3b9 100644
--- a/readme/BlazorWebAssemblyApp.md
+++ b/readme/BlazorWebAssemblyApp.md
@@ -71,7 +71,7 @@ The [project file](/samples/BlazorWebAssemblyApp/BlazorWebAssemblyApp.csproj) lo
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/readme/GrpcService.md b/readme/GrpcService.md
index 41b731409..11f376ab1 100644
--- a/readme/GrpcService.md
+++ b/readme/GrpcService.md
@@ -57,7 +57,7 @@ The [project file](/samples/GrpcService/GrpcService.csproj) looks like this:
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/readme/Maui.md b/readme/Maui.md
index 0501565f2..3bc10d3ce 100644
--- a/readme/Maui.md
+++ b/readme/Maui.md
@@ -212,7 +212,7 @@ The [project file](/samples/MAUIApp/MAUIApp.csproj) looks like this:
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/readme/MinimalWebAPI.md b/readme/MinimalWebAPI.md
index 8c5c11cb4..ed28d8b09 100644
--- a/readme/MinimalWebAPI.md
+++ b/readme/MinimalWebAPI.md
@@ -80,7 +80,7 @@ The [project file](/samples/WebAPI/WebAPI.csproj) looks like this:
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/readme/WebAPI.md b/readme/WebAPI.md
index ba945f1ee..2707521cb 100644
--- a/readme/WebAPI.md
+++ b/readme/WebAPI.md
@@ -55,7 +55,7 @@ The [project file](/samples/WebAPI/WebAPI.csproj) looks like this:
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/readme/WebApp.md b/readme/WebApp.md
index 853a0adbf..5c335d5be 100644
--- a/readme/WebApp.md
+++ b/readme/WebApp.md
@@ -55,7 +55,7 @@ The [project file](/samples/WebApp/WebApp.csproj) looks like this:
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/readme/async-disposable-scope.md b/readme/async-disposable-scope.md
index d6c1a7c58..d15c73d65 100644
--- a/readme/async-disposable-scope.md
+++ b/readme/async-disposable-scope.md
@@ -135,14 +135,24 @@ partial class Composition: IDisposable, IAsyncDisposable
get
{
var perResolveFunc43 = default(Func);
- perResolveFunc43 = new Func(
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- () =>
+ if (perResolveFunc43 == null)
{
- Composition transientComposition2 = this;
- var localValue0 = new Session(transientComposition2);
- return localValue0;
- });
+ lock (_lock)
+ {
+ if (perResolveFunc43 == null)
+ {
+ perResolveFunc43 = new Func(
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ () =>
+ {
+ Composition transientComposition2 = this;
+ var localValue0 = new Session(transientComposition2);
+ return localValue0;
+ });
+ }
+ }
+ }
+
return new Program(perResolveFunc43!);
}
}
diff --git a/readme/auto-scoped.md b/readme/auto-scoped.md
index 970567fa5..3dc583a05 100644
--- a/readme/auto-scoped.md
+++ b/readme/auto-scoped.md
@@ -112,22 +112,32 @@ partial class Composition
get
{
var perResolveFunc43 = default(Func);
- perResolveFunc43 = new Func(
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- () =>
+ if (perResolveFunc43 == null)
{
- Composition transientComposition2 = this;
- IService transientIService1;
+ lock (_lock)
{
- var localBaseComposition1 = transientComposition2;
- // Creates a session
- var localSession2 = new Composition(localBaseComposition1);
- transientIService1 = localSession2.SessionRoot;
+ if (perResolveFunc43 == null)
+ {
+ perResolveFunc43 = new Func(
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ () =>
+ {
+ Composition transientComposition2 = this;
+ IService transientIService1;
+ {
+ var localBaseComposition1 = transientComposition2;
+ // Creates a session
+ var localSession2 = new Composition(localBaseComposition1);
+ transientIService1 = localSession2.SessionRoot;
+ }
+
+ var localValue0 = transientIService1;
+ return localValue0;
+ });
+ }
}
+ }
- var localValue0 = transientIService1;
- return localValue0;
- });
return new Program(perResolveFunc43!);
}
}
diff --git a/readme/func-with-tag.md b/readme/func-with-tag.md
index d5f2462d6..d60569205 100644
--- a/readme/func-with-tag.md
+++ b/readme/func-with-tag.md
@@ -62,13 +62,23 @@ partial class Composition
get
{
var perResolveFunc39 = default(Func);
- perResolveFunc39 = new Func(
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- () =>
+ if (perResolveFunc39 == null)
{
- var localValue0 = new Dependency();
- return localValue0;
- });
+ lock (_lock)
+ {
+ if (perResolveFunc39 == null)
+ {
+ perResolveFunc39 = new Func(
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ () =>
+ {
+ var localValue0 = new Dependency();
+ return localValue0;
+ });
+ }
+ }
+ }
+
return new Service(perResolveFunc39!);
}
}
diff --git a/readme/func.md b/readme/func.md
index 38ee9d29e..e67bff9ea 100644
--- a/readme/func.md
+++ b/readme/func.md
@@ -65,13 +65,23 @@ partial class Composition
get
{
var perResolveFunc39 = default(Func);
- perResolveFunc39 = new Func(
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- () =>
+ if (perResolveFunc39 == null)
{
- var localValue0 = new Dependency();
- return localValue0;
- });
+ lock (_lock)
+ {
+ if (perResolveFunc39 == null)
+ {
+ perResolveFunc39 = new Func(
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ () =>
+ {
+ var localValue0 = new Dependency();
+ return localValue0;
+ });
+ }
+ }
+ }
+
return new Service(perResolveFunc39!);
}
}
diff --git a/readme/lazy.md b/readme/lazy.md
index 7dfc4050a..17a9ab6e0 100644
--- a/readme/lazy.md
+++ b/readme/lazy.md
@@ -56,13 +56,23 @@ partial class Composition
get
{
var perResolveFunc40 = default(Func);
- perResolveFunc40 = new Func(
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- () =>
+ if (perResolveFunc40 == null)
{
- var localValue0 = new Dependency();
- return localValue0;
- });
+ lock (_lock)
+ {
+ if (perResolveFunc40 == null)
+ {
+ perResolveFunc40 = new Func(
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ () =>
+ {
+ var localValue0 = new Dependency();
+ return localValue0;
+ });
+ }
+ }
+ }
+
Lazy transientLazy1;
{
var localFactory1 = perResolveFunc40!;
diff --git a/readme/manually-started-tasks.md b/readme/manually-started-tasks.md
index 42091eecf..50a77c6ef 100644
--- a/readme/manually-started-tasks.md
+++ b/readme/manually-started-tasks.md
@@ -91,13 +91,23 @@ partial class Composition
public IService GetRoot(CancellationToken cancellationToken)
{
var perResolveFunc42 = default(Func);
- perResolveFunc42 = new Func(
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- () =>
+ if (perResolveFunc42 == null)
{
- var localValue0 = new Dependency();
- return localValue0;
- });
+ lock (_lock)
+ {
+ if (perResolveFunc42 == null)
+ {
+ perResolveFunc42 = new Func(
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ () =>
+ {
+ var localValue0 = new Dependency();
+ return localValue0;
+ });
+ }
+ }
+ }
+
Task transientTask1;
{
var localFactory1 = perResolveFunc42!;
diff --git a/readme/scope.md b/readme/scope.md
index 636c3ff59..bc7db38b4 100644
--- a/readme/scope.md
+++ b/readme/scope.md
@@ -133,14 +133,24 @@ partial class Composition: IDisposable
get
{
var perResolveFunc43 = default(Func);
- perResolveFunc43 = new Func(
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- () =>
+ if (perResolveFunc43 == null)
{
- Composition transientComposition2 = this;
- var localValue0 = new Session(transientComposition2);
- return localValue0;
- });
+ lock (_lock)
+ {
+ if (perResolveFunc43 == null)
+ {
+ perResolveFunc43 = new Func(
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ () =>
+ {
+ Composition transientComposition2 = this;
+ var localValue0 = new Session(transientComposition2);
+ return localValue0;
+ });
+ }
+ }
+ }
+
return new Program(perResolveFunc43!);
}
}
diff --git a/readme/task.md b/readme/task.md
index 51fcc8478..6b8400f27 100644
--- a/readme/task.md
+++ b/readme/task.md
@@ -94,13 +94,23 @@ partial class Composition
perBlockTaskFactory2 = new TaskFactory(localCancellationToken0, localTaskCreationOptions1, localTaskContinuationOptions2, localTaskScheduler3);
}
- perResolveFunc42 = new Func(
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- () =>
+ if (perResolveFunc42 == null)
{
- var localValue4 = new Dependency();
- return localValue4;
- });
+ lock (_lock)
+ {
+ if (perResolveFunc42 == null)
+ {
+ perResolveFunc42 = new Func(
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ () =>
+ {
+ var localValue4 = new Dependency();
+ return localValue4;
+ });
+ }
+ }
+ }
+
Task transientTask1;
{
var localFactory5 = perResolveFunc42!;
diff --git a/readme/tracking-async-disposable-instances-in-delegates.md b/readme/tracking-async-disposable-instances-in-delegates.md
index 7b2761cf2..973adf34d 100644
--- a/readme/tracking-async-disposable-instances-in-delegates.md
+++ b/readme/tracking-async-disposable-instances-in-delegates.md
@@ -96,32 +96,42 @@ partial class Composition
get
{
var perResolveFunc39 = default(Func>);
- perResolveFunc39 = new Func>(
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- () =>
+ if (perResolveFunc39 == null)
{
- var accumulator38 = new Owned();
- Dependency transientDependency3 = new Dependency();
lock (_lock)
{
- accumulator38.Add(transientDependency3);
- }
-
- Owned perBlockOwned1;
- {
- var localOwned1 = accumulator38;
- var localValue2 = transientDependency3;
- perBlockOwned1 = new Owned(localValue2, localOwned1);
- }
-
- lock (_lock)
- {
- accumulator38.Add(perBlockOwned1);
+ if (perResolveFunc39 == null)
+ {
+ perResolveFunc39 = new Func>(
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ () =>
+ {
+ var accumulator38 = new Owned();
+ Dependency transientDependency3 = new Dependency();
+ lock (_lock)
+ {
+ accumulator38.Add(transientDependency3);
+ }
+
+ Owned perBlockOwned1;
+ {
+ var localOwned1 = accumulator38;
+ var localValue2 = transientDependency3;
+ perBlockOwned1 = new Owned(localValue2, localOwned1);
+ }
+
+ lock (_lock)
+ {
+ accumulator38.Add(perBlockOwned1);
+ }
+
+ var localValue0 = perBlockOwned1;
+ return localValue0;
+ });
+ }
}
+ }
- var localValue0 = perBlockOwned1;
- return localValue0;
- });
return new Service(perResolveFunc39!);
}
}
diff --git a/readme/tracking-disposable-instances-in-delegates.md b/readme/tracking-disposable-instances-in-delegates.md
index 12e1c4209..b46590c68 100644
--- a/readme/tracking-disposable-instances-in-delegates.md
+++ b/readme/tracking-disposable-instances-in-delegates.md
@@ -89,32 +89,42 @@ partial class Composition
get
{
var perResolveFunc39 = default(Func>);
- perResolveFunc39 = new Func>(
- [MethodImpl(MethodImplOptions.AggressiveInlining)]
- () =>
+ if (perResolveFunc39 == null)
{
- var accumulator38 = new Owned();
- Dependency transientDependency3 = new Dependency();
lock (_lock)
{
- accumulator38.Add(transientDependency3);
- }
-
- Owned perBlockOwned1;
- {
- var localOwned1 = accumulator38;
- var localValue2 = transientDependency3;
- perBlockOwned1 = new Owned(localValue2, localOwned1);
- }
-
- lock (_lock)
- {
- accumulator38.Add(perBlockOwned1);
+ if (perResolveFunc39 == null)
+ {
+ perResolveFunc39 = new Func>(
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ () =>
+ {
+ var accumulator38 = new Owned();
+ Dependency transientDependency3 = new Dependency();
+ lock (_lock)
+ {
+ accumulator38.Add(transientDependency3);
+ }
+
+ Owned perBlockOwned1;
+ {
+ var localOwned1 = accumulator38;
+ var localValue2 = transientDependency3;
+ perBlockOwned1 = new Owned(localValue2, localOwned1);
+ }
+
+ lock (_lock)
+ {
+ accumulator38.Add(perBlockOwned1);
+ }
+
+ var localValue0 = perBlockOwned1;
+ return localValue0;
+ });
+ }
}
+ }
- var localValue0 = perBlockOwned1;
- return localValue0;
- });
return new Service(perResolveFunc39!);
}
}