Skip to content

Commit f8926ce

Browse files
committed
feat: add modular framework infrastructure primitives
P0 - Async service registration: - Add ConfigureServicesAsync/PreConfigureServicesAsync/PostConfigureServicesAsync to ModuleBase - Add AddModuleAsync and AddModularApplicationAsync for async module registration paths - Refactor PrepareModuleGraph as shared helper for sync and async paths P0 - Configuration access during registration: - Add IConfiguration? to ServiceConfigurationContext (auto-resolved from IServiceCollection) - Add Microsoft.Extensions.Configuration.Abstractions to Core project P1 - ObjectAccessor<T>: - Add IObjectAccessor<T>, ObjectAccessor<T> for typed registration-time sharing - Add AddObjectAccessor, TryAddObjectAccessor, GetObject, GetObjectOrNull extensions P1 - PreConfigure<T>: - Add PreConfigureActionList<T> for accumulating pre-configuration actions - Add PreConfigure<T>, ExecutePreConfiguredActions<T> extensions on IServiceCollection - Add PreConfigure<T> helper on ModuleBase P1 - IModuleLifecycleContributor: - Add IModuleLifecycleContributor interface and ModuleLifecycleOptions - Integrate contributors into ModuleManager init/shutdown loops - Contributors resolved via ActivatorUtilities for flexible DI P1 - Conventional DI registration: - Add ITransientService, IScopedService, ISingletonService marker interfaces - Add DisableConventionalRegistrationAttribute opt-out - Add AddConventionalServices(Assembly) with naming convention matching Tests: 30 new tests across 5 test files (351 total, 0 failures)
1 parent 701db81 commit f8926ce

File tree

67 files changed

+1408
-590
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+1408
-590
lines changed

Directory.Packages.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<!-- Runtime dependencies -->
1010
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="10.0.0" />
1111
<PackageVersion Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="10.0.0" />
12+
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="10.0.0" />
1213
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.0" />
1314
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.0" />
1415
<PackageVersion Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="10.0.0" />

src/Applications/AuditLogging/ChengYuan.AuditLogging.Application/packages.lock.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
"chengyuan.core": {
2626
"type": "Project",
2727
"dependencies": {
28+
"Microsoft.Extensions.Configuration.Abstractions": "[10.0.0, )",
2829
"Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.0, )",
2930
"Microsoft.Extensions.Logging.Abstractions": "[10.0.0, )",
3031
"Microsoft.Extensions.Options": "[10.0.0, )"
@@ -51,6 +52,15 @@
5152
"ChengYuan.MultiTenancy.Abstractions": "[0.2.10-local, )"
5253
}
5354
},
55+
"Microsoft.Extensions.Configuration.Abstractions": {
56+
"type": "CentralTransitive",
57+
"requested": "[10.0.0, )",
58+
"resolved": "10.0.0",
59+
"contentHash": "d2kDKnCsJvY7mBVhcjPSp9BkJk48DsaHPg5u+Oy4f8XaOqnEedRy/USyvnpHL92wpJ6DrTPy7htppUUzskbCXQ==",
60+
"dependencies": {
61+
"Microsoft.Extensions.Primitives": "10.0.0"
62+
}
63+
},
5464
"Microsoft.Extensions.DependencyInjection.Abstractions": {
5565
"type": "CentralTransitive",
5666
"requested": "[10.0.0, )",

src/Applications/AuditLogging/ChengYuan.AuditLogging.Persistence/packages.lock.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
"chengyuan.core": {
6262
"type": "Project",
6363
"dependencies": {
64+
"Microsoft.Extensions.Configuration.Abstractions": "[10.0.0, )",
6465
"Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.0, )",
6566
"Microsoft.Extensions.Logging.Abstractions": "[10.0.0, )",
6667
"Microsoft.Extensions.Options": "[10.0.0, )"
@@ -120,6 +121,15 @@
120121
"Microsoft.Extensions.Primitives": "10.0.0"
121122
}
122123
},
124+
"Microsoft.Extensions.Configuration.Abstractions": {
125+
"type": "CentralTransitive",
126+
"requested": "[10.0.0, )",
127+
"resolved": "10.0.0",
128+
"contentHash": "d2kDKnCsJvY7mBVhcjPSp9BkJk48DsaHPg5u+Oy4f8XaOqnEedRy/USyvnpHL92wpJ6DrTPy7htppUUzskbCXQ==",
129+
"dependencies": {
130+
"Microsoft.Extensions.Primitives": "10.0.0"
131+
}
132+
},
123133
"Microsoft.Extensions.DependencyInjection": {
124134
"type": "CentralTransitive",
125135
"requested": "[10.0.0, )",

src/Applications/FeatureManagement/ChengYuan.FeatureManagement.Application/packages.lock.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"chengyuan.core": {
1111
"type": "Project",
1212
"dependencies": {
13+
"Microsoft.Extensions.Configuration.Abstractions": "[10.0.0, )",
1314
"Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.0, )",
1415
"Microsoft.Extensions.Logging.Abstractions": "[10.0.0, )",
1516
"Microsoft.Extensions.Options": "[10.0.0, )"
@@ -54,6 +55,15 @@
5455
"ChengYuan.MultiTenancy.Abstractions": "[0.2.10-local, )"
5556
}
5657
},
58+
"Microsoft.Extensions.Configuration.Abstractions": {
59+
"type": "CentralTransitive",
60+
"requested": "[10.0.0, )",
61+
"resolved": "10.0.0",
62+
"contentHash": "d2kDKnCsJvY7mBVhcjPSp9BkJk48DsaHPg5u+Oy4f8XaOqnEedRy/USyvnpHL92wpJ6DrTPy7htppUUzskbCXQ==",
63+
"dependencies": {
64+
"Microsoft.Extensions.Primitives": "10.0.0"
65+
}
66+
},
5767
"Microsoft.Extensions.DependencyInjection.Abstractions": {
5868
"type": "CentralTransitive",
5969
"requested": "[10.0.0, )",

src/Applications/FeatureManagement/ChengYuan.FeatureManagement.Persistence/packages.lock.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
"chengyuan.core": {
4242
"type": "Project",
4343
"dependencies": {
44+
"Microsoft.Extensions.Configuration.Abstractions": "[10.0.0, )",
4445
"Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.0, )",
4546
"Microsoft.Extensions.Logging.Abstractions": "[10.0.0, )",
4647
"Microsoft.Extensions.Options": "[10.0.0, )"
@@ -126,6 +127,15 @@
126127
"Microsoft.Extensions.Primitives": "10.0.0"
127128
}
128129
},
130+
"Microsoft.Extensions.Configuration.Abstractions": {
131+
"type": "CentralTransitive",
132+
"requested": "[10.0.0, )",
133+
"resolved": "10.0.0",
134+
"contentHash": "d2kDKnCsJvY7mBVhcjPSp9BkJk48DsaHPg5u+Oy4f8XaOqnEedRy/USyvnpHL92wpJ6DrTPy7htppUUzskbCXQ==",
135+
"dependencies": {
136+
"Microsoft.Extensions.Primitives": "10.0.0"
137+
}
138+
},
129139
"Microsoft.Extensions.DependencyInjection": {
130140
"type": "CentralTransitive",
131141
"requested": "[10.0.0, )",

src/Applications/Identity/ChengYuan.Identity.Application/packages.lock.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"chengyuan.core": {
1111
"type": "Project",
1212
"dependencies": {
13+
"Microsoft.Extensions.Configuration.Abstractions": "[10.0.0, )",
1314
"Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.0, )",
1415
"Microsoft.Extensions.Logging.Abstractions": "[10.0.0, )",
1516
"Microsoft.Extensions.Options": "[10.0.0, )"
@@ -25,6 +26,15 @@
2526
"ChengYuan.Identity.Contracts": "[0.2.10-local, )"
2627
}
2728
},
29+
"Microsoft.Extensions.Configuration.Abstractions": {
30+
"type": "CentralTransitive",
31+
"requested": "[10.0.0, )",
32+
"resolved": "10.0.0",
33+
"contentHash": "d2kDKnCsJvY7mBVhcjPSp9BkJk48DsaHPg5u+Oy4f8XaOqnEedRy/USyvnpHL92wpJ6DrTPy7htppUUzskbCXQ==",
34+
"dependencies": {
35+
"Microsoft.Extensions.Primitives": "10.0.0"
36+
}
37+
},
2838
"Microsoft.Extensions.DependencyInjection.Abstractions": {
2939
"type": "CentralTransitive",
3040
"requested": "[10.0.0, )",

src/Applications/Identity/ChengYuan.Identity.Domain/packages.lock.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"chengyuan.core": {
1111
"type": "Project",
1212
"dependencies": {
13+
"Microsoft.Extensions.Configuration.Abstractions": "[10.0.0, )",
1314
"Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.0, )",
1415
"Microsoft.Extensions.Logging.Abstractions": "[10.0.0, )",
1516
"Microsoft.Extensions.Options": "[10.0.0, )"
@@ -18,6 +19,15 @@
1819
"chengyuan.identity.contracts": {
1920
"type": "Project"
2021
},
22+
"Microsoft.Extensions.Configuration.Abstractions": {
23+
"type": "CentralTransitive",
24+
"requested": "[10.0.0, )",
25+
"resolved": "10.0.0",
26+
"contentHash": "d2kDKnCsJvY7mBVhcjPSp9BkJk48DsaHPg5u+Oy4f8XaOqnEedRy/USyvnpHL92wpJ6DrTPy7htppUUzskbCXQ==",
27+
"dependencies": {
28+
"Microsoft.Extensions.Primitives": "10.0.0"
29+
}
30+
},
2131
"Microsoft.Extensions.DependencyInjection.Abstractions": {
2232
"type": "CentralTransitive",
2333
"requested": "[10.0.0, )",

src/Applications/Identity/ChengYuan.Identity.Persistence/packages.lock.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
"chengyuan.core": {
4242
"type": "Project",
4343
"dependencies": {
44+
"Microsoft.Extensions.Configuration.Abstractions": "[10.0.0, )",
4445
"Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.0, )",
4546
"Microsoft.Extensions.Logging.Abstractions": "[10.0.0, )",
4647
"Microsoft.Extensions.Options": "[10.0.0, )"
@@ -97,6 +98,15 @@
9798
"Microsoft.Extensions.Primitives": "10.0.0"
9899
}
99100
},
101+
"Microsoft.Extensions.Configuration.Abstractions": {
102+
"type": "CentralTransitive",
103+
"requested": "[10.0.0, )",
104+
"resolved": "10.0.0",
105+
"contentHash": "d2kDKnCsJvY7mBVhcjPSp9BkJk48DsaHPg5u+Oy4f8XaOqnEedRy/USyvnpHL92wpJ6DrTPy7htppUUzskbCXQ==",
106+
"dependencies": {
107+
"Microsoft.Extensions.Primitives": "10.0.0"
108+
}
109+
},
100110
"Microsoft.Extensions.DependencyInjection": {
101111
"type": "CentralTransitive",
102112
"requested": "[10.0.0, )",

src/Applications/PermissionManagement/ChengYuan.PermissionManagement.Application/packages.lock.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"chengyuan.core": {
2323
"type": "Project",
2424
"dependencies": {
25+
"Microsoft.Extensions.Configuration.Abstractions": "[10.0.0, )",
2526
"Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.0, )",
2627
"Microsoft.Extensions.Logging.Abstractions": "[10.0.0, )",
2728
"Microsoft.Extensions.Options": "[10.0.0, )"
@@ -54,6 +55,15 @@
5455
"ChengYuan.Authorization.Abstractions": "[0.2.10-local, )"
5556
}
5657
},
58+
"Microsoft.Extensions.Configuration.Abstractions": {
59+
"type": "CentralTransitive",
60+
"requested": "[10.0.0, )",
61+
"resolved": "10.0.0",
62+
"contentHash": "d2kDKnCsJvY7mBVhcjPSp9BkJk48DsaHPg5u+Oy4f8XaOqnEedRy/USyvnpHL92wpJ6DrTPy7htppUUzskbCXQ==",
63+
"dependencies": {
64+
"Microsoft.Extensions.Primitives": "10.0.0"
65+
}
66+
},
5767
"Microsoft.Extensions.DependencyInjection.Abstractions": {
5868
"type": "CentralTransitive",
5969
"requested": "[10.0.0, )",

src/Applications/PermissionManagement/ChengYuan.PermissionManagement.Persistence/packages.lock.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
"chengyuan.core": {
5454
"type": "Project",
5555
"dependencies": {
56+
"Microsoft.Extensions.Configuration.Abstractions": "[10.0.0, )",
5657
"Microsoft.Extensions.DependencyInjection.Abstractions": "[10.0.0, )",
5758
"Microsoft.Extensions.Logging.Abstractions": "[10.0.0, )",
5859
"Microsoft.Extensions.Options": "[10.0.0, )"
@@ -126,6 +127,15 @@
126127
"Microsoft.Extensions.Primitives": "10.0.0"
127128
}
128129
},
130+
"Microsoft.Extensions.Configuration.Abstractions": {
131+
"type": "CentralTransitive",
132+
"requested": "[10.0.0, )",
133+
"resolved": "10.0.0",
134+
"contentHash": "d2kDKnCsJvY7mBVhcjPSp9BkJk48DsaHPg5u+Oy4f8XaOqnEedRy/USyvnpHL92wpJ6DrTPy7htppUUzskbCXQ==",
135+
"dependencies": {
136+
"Microsoft.Extensions.Primitives": "10.0.0"
137+
}
138+
},
129139
"Microsoft.Extensions.DependencyInjection": {
130140
"type": "CentralTransitive",
131141
"requested": "[10.0.0, )",

0 commit comments

Comments
 (0)