Skip to content

Commit 8cc2148

Browse files
#95 Scope lifetime documentation, update samples
1 parent df5f0f3 commit 8cc2148

9 files changed

Lines changed: 58 additions & 44 deletions

File tree

AI_CONTEXT_LARGE.md

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10497,6 +10497,13 @@ See also _Hint(Pure.DI.Hint,System.String)_.
1049710497
</blockquote></details>
1049810498

1049910499

10500+
<details><summary>Field LocalFunctionLines</summary><blockquote>
10501+
10502+
Undocumented feature, for now only for internal use.
10503+
10504+
</blockquote></details>
10505+
10506+
1050010507
</blockquote></details>
1050110508

1050210509

@@ -11872,7 +11879,7 @@ Ensures that there will be a single instance of the dependency for each scope.
1187211879
```c#
1187311880

1187411881
DI.Setup("Composition")
11875-
.Bind<IDependency>().As(Lifetime.Singleton).To<Dependency>();
11882+
.Bind<IDependency>().As(Lifetime.Scoped).To<Dependency>();
1187611883

1187711884
```
1187811885

@@ -12233,21 +12240,21 @@ DI.Setup("Composition")
1223312240
</blockquote></details>
1223412241

1223512242

12236-
<details><summary>Field UniqueTag</summary><blockquote>
12243+
<details><summary>Field GenericType</summary><blockquote>
1223712244

12238-
Atomically generated smart tag with value "UniqueTag".
12245+
Atomically generated smart tag with value "GenericType".
1223912246
It's used for:
1224012247

12241-
class _Generator__ApiInvocationProcessor_ <-- (UniqueTag) -- _IdGenerator_ as _PerResolve_
12248+
class _Generator__TypeResolver_ <-- _IIdGenerator_(GenericType) -- _IdGenerator_ as _PerResolve_
1224212249
</blockquote></details>
1224312250

1224412251

12245-
<details><summary>Field GenericType</summary><blockquote>
12252+
<details><summary>Field Overrider</summary><blockquote>
1224612253

12247-
Atomically generated smart tag with value "GenericType".
12254+
Atomically generated smart tag with value "Overrider".
1224812255
It's used for:
1224912256

12250-
class _Generator__TypeResolver_ <-- _IIdGenerator_(GenericType) -- _IdGenerator_ as _PerResolve_
12257+
class _Generator__DependencyGraphBuilder_ <-- _IGraphRewriter_(Overrider) -- _GraphOverrider_ as _PerBlock_
1225112258
</blockquote></details>
1225212259

1225312260

@@ -12267,30 +12274,30 @@ Atomically generated smart tag with value "Override".
1226712274
</blockquote></details>
1226812275

1226912276

12270-
<details><summary>Field Overrider</summary><blockquote>
12277+
<details><summary>Field Cleaner</summary><blockquote>
1227112278

12272-
Atomically generated smart tag with value "Overrider".
12279+
Atomically generated smart tag with value "Cleaner".
1227312280
It's used for:
1227412281

12275-
class _Generator__DependencyGraphBuilder_ <-- _IGraphRewriter_(Overrider) -- _GraphOverrider_ as _PerBlock_
12282+
class _Generator__DependencyGraphBuilder_ <-- _IGraphRewriter_(Cleaner) -- _GraphCleaner_ as _PerBlock_
1227612283
</blockquote></details>
1227712284

1227812285

12279-
<details><summary>Field CompositionClass</summary><blockquote>
12286+
<details><summary>Field UniqueTag</summary><blockquote>
1228012287

12281-
Atomically generated smart tag with value "CompositionClass".
12288+
Atomically generated smart tag with value "UniqueTag".
1228212289
It's used for:
1228312290

12284-
class _Generator__CodeBuilder_ <-- _IBuilder`2_(CompositionClass) -- _CompositionClassBuilder_ as _PerBlock_
12291+
class _Generator__ApiInvocationProcessor_ <-- (UniqueTag) -- _IdGenerator_ as _PerResolve_
1228512292
</blockquote></details>
1228612293

1228712294

12288-
<details><summary>Field Cleaner</summary><blockquote>
12295+
<details><summary>Field CompositionClass</summary><blockquote>
1228912296

12290-
Atomically generated smart tag with value "Cleaner".
12297+
Atomically generated smart tag with value "CompositionClass".
1229112298
It's used for:
1229212299

12293-
class _Generator__DependencyGraphBuilder_ <-- _IGraphRewriter_(Cleaner) -- _GraphCleaner_ as _PerBlock_
12300+
class _Generator__CodeBuilder_ <-- _IBuilder`2_(CompositionClass) -- _CompositionClassBuilder_ as _PerBlock_
1229412301
</blockquote></details>
1229512302

1229612303

README.md

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1714,6 +1714,13 @@ See also _Hint(Pure.DI.Hint,System.String)_.
17141714
</blockquote></details>
17151715

17161716

1717+
<details><summary>Field LocalFunctionLines</summary><blockquote>
1718+
1719+
Undocumented feature, for now only for internal use.
1720+
1721+
</blockquote></details>
1722+
1723+
17171724
</blockquote></details>
17181725

17191726

@@ -3089,7 +3096,7 @@ Ensures that there will be a single instance of the dependency for each scope.
30893096
```c#
30903097

30913098
DI.Setup("Composition")
3092-
.Bind<IDependency>().As(Lifetime.Singleton).To<Dependency>();
3099+
.Bind<IDependency>().As(Lifetime.Scoped).To<Dependency>();
30933100

30943101
```
30953102

@@ -3450,21 +3457,21 @@ DI.Setup("Composition")
34503457
</blockquote></details>
34513458

34523459

3453-
<details><summary>Field UniqueTag</summary><blockquote>
3460+
<details><summary>Field GenericType</summary><blockquote>
34543461

3455-
Atomically generated smart tag with value "UniqueTag".
3462+
Atomically generated smart tag with value "GenericType".
34563463
It's used for:
34573464

3458-
class _Generator__ApiInvocationProcessor_ <-- (UniqueTag) -- _IdGenerator_ as _PerResolve_
3465+
class _Generator__TypeResolver_ <-- _IIdGenerator_(GenericType) -- _IdGenerator_ as _PerResolve_
34593466
</blockquote></details>
34603467

34613468

3462-
<details><summary>Field GenericType</summary><blockquote>
3469+
<details><summary>Field Overrider</summary><blockquote>
34633470

3464-
Atomically generated smart tag with value "GenericType".
3471+
Atomically generated smart tag with value "Overrider".
34653472
It's used for:
34663473

3467-
class _Generator__TypeResolver_ <-- _IIdGenerator_(GenericType) -- _IdGenerator_ as _PerResolve_
3474+
class _Generator__DependencyGraphBuilder_ <-- _IGraphRewriter_(Overrider) -- _GraphOverrider_ as _PerBlock_
34683475
</blockquote></details>
34693476

34703477

@@ -3484,30 +3491,30 @@ Atomically generated smart tag with value "Override".
34843491
</blockquote></details>
34853492

34863493

3487-
<details><summary>Field Overrider</summary><blockquote>
3494+
<details><summary>Field Cleaner</summary><blockquote>
34883495

3489-
Atomically generated smart tag with value "Overrider".
3496+
Atomically generated smart tag with value "Cleaner".
34903497
It's used for:
34913498

3492-
class _Generator__DependencyGraphBuilder_ <-- _IGraphRewriter_(Overrider) -- _GraphOverrider_ as _PerBlock_
3499+
class _Generator__DependencyGraphBuilder_ <-- _IGraphRewriter_(Cleaner) -- _GraphCleaner_ as _PerBlock_
34933500
</blockquote></details>
34943501

34953502

3496-
<details><summary>Field CompositionClass</summary><blockquote>
3503+
<details><summary>Field UniqueTag</summary><blockquote>
34973504

3498-
Atomically generated smart tag with value "CompositionClass".
3505+
Atomically generated smart tag with value "UniqueTag".
34993506
It's used for:
35003507

3501-
class _Generator__CodeBuilder_ <-- _IBuilder`2_(CompositionClass) -- _CompositionClassBuilder_ as _PerBlock_
3508+
class _Generator__ApiInvocationProcessor_ <-- (UniqueTag) -- _IdGenerator_ as _PerResolve_
35023509
</blockquote></details>
35033510

35043511

3505-
<details><summary>Field Cleaner</summary><blockquote>
3512+
<details><summary>Field CompositionClass</summary><blockquote>
35063513

3507-
Atomically generated smart tag with value "Cleaner".
3514+
Atomically generated smart tag with value "CompositionClass".
35083515
It's used for:
35093516

3510-
class _Generator__DependencyGraphBuilder_ <-- _IGraphRewriter_(Cleaner) -- _GraphCleaner_ as _PerBlock_
3517+
class _Generator__CodeBuilder_ <-- _IBuilder`2_(CompositionClass) -- _CompositionClassBuilder_ as _PerBlock_
35113518
</blockquote></details>
35123519

35133520

readme/func-with-arguments.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,12 +125,12 @@ partial class Composition
125125
int overInt320;
126126
Func<int, string, IDependency> perBlockFunc1;
127127
var localLockObject104 = new Object();
128-
Func<int, string, IDependency> localFactory105 = new Func<int, string, IDependency>((int localArg14, string localArg211) =>
128+
Func<int, string, IDependency> localFactory105 = new Func<int, string, IDependency>((int localArg114, string localArg222) =>
129129
{
130130
lock (localLockObject104)
131131
{
132-
overInt320 = localArg14;
133-
overString2 = localArg211;
132+
overInt320 = localArg114;
133+
overString2 = localArg222;
134134
if (_root._singletonClock51 is null)
135135
{
136136
using (_lock.EnterScope())

readme/generic-injections-as-required-with-arguments.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,11 +101,11 @@ partial class Composition
101101
int overInt320;
102102
Func<int, IDependency<string>> perBlockFunc1;
103103
var localLockObject142 = new Object();
104-
Func<int, IDependency<string>> localFactory143 = new Func<int, IDependency<string>>((int localArg13) =>
104+
Func<int, IDependency<string>> localFactory143 = new Func<int, IDependency<string>>((int localArg17) =>
105105
{
106106
lock (localLockObject142)
107107
{
108-
overInt320 = localArg13;
108+
overInt320 = localArg17;
109109
IDependency<string> localValue144 = new Dependency<string>(overInt320);
110110
return localValue144;
111111
}

readme/injections-on-demand-with-arguments.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,11 @@ partial class Composition
113113
int overInt320;
114114
Func<int, IDependency> perBlockFunc1;
115115
var localLockObject97 = new Object();
116-
Func<int, IDependency> localFactory98 = new Func<int, IDependency>((int localArg13) =>
116+
Func<int, IDependency> localFactory98 = new Func<int, IDependency>((int localArg17) =>
117117
{
118118
lock (localLockObject97)
119119
{
120-
overInt320 = localArg13;
120+
overInt320 = localArg17;
121121
IDependency localValue99 = new Dependency(overInt320);
122122
return localValue99;
123123
}

samples/MAUIApp/Dispatcher.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
// ReSharper disable once ClassNeverInstantiated.Global
66
class Dispatcher(IDispatcher dispatcher)
7-
: Clock.ViewModels.IDispatcher
7+
: Clock.Models.IDispatcher
88
{
99
public void Dispatch(Action action) =>
1010
dispatcher.Dispatch(action);

samples/MAUIReactorApp/Composition.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ namespace MAUIReactorApp;
77
using Components;
88
using Pure.DI;
99
using Pure.DI.MS;
10+
using Clock.Models;
1011
using static Pure.DI.Lifetime;
11-
using Timer = Clock.Models.Timer;
1212

1313
partial class Composition: ServiceProviderFactory<Composition>
1414
{

samples/MAUIReactorApp/Dispatcher.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
namespace MAUIReactorApp;
22

3-
using IDispatcher = Microsoft.Maui.Dispatching.IDispatcher;
3+
using IDispatcher=Microsoft.Maui.Dispatching.IDispatcher;
44

55
// ReSharper disable once ClassNeverInstantiated.Global
66
class Dispatcher(IDispatcher dispatcher)
7-
: Clock.ViewModels.IDispatcher
7+
: Clock.Models.IDispatcher
88
{
99
public void Dispatch(Action action) =>
1010
dispatcher.Dispatch(action);

src/Pure.DI.Core/Components/Api.g.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ internal enum Lifetime
9494
/// <example>
9595
/// <code>
9696
/// DI.Setup("Composition")
97-
/// .Bind&lt;IDependency&gt;().As(Lifetime.Singleton).To&lt;Dependency&gt;();
97+
/// .Bind&lt;IDependency&gt;().As(Lifetime.Scoped).To&lt;Dependency&gt;();
9898
/// </code>
9999
/// </example>
100100
/// </summary>

0 commit comments

Comments
 (0)