refactor(P2): DI 컴포지션 루트 + Scrutor 어셈블리 스캔 자동등록
컴파일타임 하드코딩(Bootstrap 14개 new + 수동 생성자 와이어링)을 제거 — 새 Provider는 클래스만 추가하면 자동 등록되고 그래프가 변환 엣지를 자동 흡수(확장성 토대). Strangler Fig 파사드로 호출부 무변경. - Core/ServiceCollectionExtensions.AddEverything2Everything: Scrutor FromAssembliesOf → AssignableTo<IConverterProvider> → AsSelfWithInterfaces(단일 싱글턴 공유) → Singleton. Heic(Magick)/Docx·Ocr·Hwpx(Pdf)/Llm(Settings) 생성자 의존 자동 해소. ProviderRegistry/Engine 등록. - Bootstrap.CreateDefault: 내부를 DI(BuildServiceProvider→GetRequiredService)로 교체하되 시그니처·동작 불변 — App/CLI/테스트 호출부 전부 무파손. - 패키지: Microsoft.Extensions.DependencyInjection 9.0.0, Scrutor 4.2.2 (CPM 경유). - DependencyInjectionTests: 14개 전수 해소 + 생성자 의존 자동 와이어링 + AsSelf 동일 인스턴스 + 공유 Settings + 파사드 하위호환 검증(적대적 리뷰의 'AsSelf 누락 silent 실패' 방어). App.xaml.cs Generic Host 전환·서비스로케이터 제거는 GUI 스모크가 필요해 P5(MVVM 생성자 주입)로 통합. 69개 테스트 전부 그린(65+4), 빌드 0경고/0오류, 골든마스터 녹색 유지(동작 불변).
This commit is contained in:
parent
6b524662a4
commit
8419bf30ff
5 changed files with 126 additions and 22 deletions
|
|
@ -26,6 +26,8 @@
|
|||
<PackageVersion Include="PDFsharp" Version="6.2.0" />
|
||||
<PackageVersion Include="Svg.Skia" Version="5.0.0" />
|
||||
<PackageVersion Include="System.Security.Cryptography.ProtectedData" Version="10.0.8" />
|
||||
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" />
|
||||
<PackageVersion Include="Scrutor" Version="4.2.2" />
|
||||
|
||||
<!-- App -->
|
||||
<PackageVersion Include="WPF-UI" Version="4.3.0" />
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue