Dreamine.MVVM.Core
Dreamine.MVVM.Core는 Dreamine MVVM 프레임워크의 경량 런타임 인프라 구현 모듈입니다.
이 패키지는 Dreamine 모듈에서 사용하는 기본 의존성 주입 구현체를 제공합니다. 주요 역할은 명시적 서비스 등록, 생성자 기반 해석, 싱글턴 인스턴스 관리, 객체 생성, 규칙 기반 자동 등록입니다.
이 패키지는 런타임 인프라에 집중합니다. Window, UserControl, FrameworkElement, ContentControl, DataContext 같은 WPF 전용 UI 개념에 의존하지 않아야 합니다.
이 라이브러리가 제공하는 것
Dreamine.MVVM.Core는 다음 기능을 제공합니다.
DMContainer정적 FacadeDreamineContainer기본 의존성 컨테이너 구현체- Thread-safe 등록, 해석, Singleton 생성
- Transient 서비스 등록
- Singleton 서비스 등록
- 팩토리 기반 서비스 등록
- 생성자 기반 의존성 해석
- 싱글턴 인스턴스 캐싱
- 순환 참조 감지
- 규칙 기반 자동 등록
- Assembly 타입 스캔
IObjectActivator기반 객체 생성- 테스트 격리를 위한 정적 Facade Reset 및 Container 교체 API
패키지 역할
Dreamine.MVVM.Core는 Dreamine.MVVM.Interfaces에 정의된 인프라 계약을 구현합니다.
권장 의존성 방향은 다음과 같습니다.
Dreamine.MVVM.Interfaces
↑
Dreamine.MVVM.Core
↑
Dreamine.MVVM.Wpf / Dreamine.MVVM.Locators / Application modules
Dreamine.MVVM.Core에는 WPF 전용 바인딩 또는 내비게이션 로직이 들어가면 안 됩니다. WPF 전용 동작은 WPF 전용 패키지에 위치해야 합니다.
서비스 수명 정책
Dreamine.MVVM.Core는 명시적인 서비스 수명 정책을 사용합니다.
| 등록 API | 수명 | 설명 |
|---|---|---|
Register<TImplementation>() |
Transient | 해석할 때마다 새 인스턴스를 생성합니다. |
Register<TService, TImplementation>() |
Transient | 추상화와 구현체를 매핑합니다. |
Register<TService>(Func<TService>) |
Transient | 해석할 때마다 팩토리를 실행합니다. |
RegisterSingleton<TService>(TService) |
Singleton | 전달받은 인스턴스를 저장합니다. |
RegisterSingleton<TImplementation>() |
Singleton | 최초 해석 시 한 번 생성하고 캐싱합니다. |
RegisterSingleton<TService, TImplementation>() |
Singleton | 추상화와 구현체를 싱글턴으로 매핑합니다. |
AutoRegisterAll(Assembly) |
자동 등록 대상 Singleton | Dreamine 자동 등록 동작을 유지합니다. |
DMContainer.Reset() |
정적 Facade 초기화 | 전역 Container를 빈 DreamineContainer로 교체합니다. |
DMContainer.SetContainer(IServiceContainer) |
정적 Facade 교체 | 테스트 또는 Host가 격리된 Container를 제공할 수 있습니다. |
중요: 자동 등록된 타입은 기본적으로 Singleton으로 등록됩니다. 따라서 자동 발견된 ViewModel, Model, Event, Manager는 애플리케이션이 별도 수명으로 명시 등록하지 않는 한 반복 해석 시 동일 인스턴스를 유지합니다.
DreamineContainer는 등록과 해석을 내부적으로 직렬화합니다. Singleton 지연 생성은 보호되므로 여러 스레드가 최초 해석을 동시에 시도해도 하나의 인스턴스만 공유됩니다. 순환 참조 감지는 Container 공유 상태가 아니라 Resolve 호출 단위 Context에 저장됩니다.
자동 등록
DMContainer.AutoRegisterAll(rootAssembly)은 후보 Assembly를 스캔하고 지원되는 구체 타입을 등록합니다.
자동 등록은 다음 구성 요소를 통해 수행됩니다.
AutoRegistrationServiceAssemblyTypeScannerNamingConventionAutoRegistrationFilter
현재 이름 규칙은 다음 패턴에 해당하는 구체 비제네릭 클래스를 대상으로 합니다.
*Model*Event*ViewModel.Managers.또는.xaml.네임스페이스 아래의*Manager.xaml.Model.xaml.Event.xaml.ViewModelDreamineRegisterAttribute또는DreamineAutoRegisterAttribute이름의 Attribute가 붙은 타입
조건에 맞는 타입은 Singleton 수명으로 등록됩니다.
프로젝트 구조
Dreamine.MVVM.Core
├── DMContainer.cs
├── AutoRegistration
│ ├── AssemblyTypeScanner.cs
│ ├── AutoRegistrationService.cs
│ └── NamingConventionAutoRegistrationFilter.cs
└── DependencyInjection
├── ConstructorActivator.cs
├── ConstructorSelector.cs
├── DreamineContainer.cs
├── ResolutionContext.cs
├── ServiceDescriptor.cs
└── ServiceLifetime.cs
요구사항
- .NET:
net8.0
설치
프로젝트 참조
<ItemGroup>
<ProjectReference Include="..\Dreamine.MVVM.Interfaces\Dreamine.MVVM.Interfaces.csproj" />
<ProjectReference Include="..\Dreamine.MVVM.Core\Dreamine.MVVM.Core.csproj" />
</ItemGroup>
NuGet
dotnet add package Dreamine.MVVM.Core
빠른 시작
Transient 서비스 등록
DMContainer.Register<IMyService, MyService>();
팩토리 등록
DMContainer.Register<IMyService>(() => new MyService());
싱글턴 인스턴스 등록
var service = new MyService();
DMContainer.RegisterSingleton<IMyService>(service);
싱글턴 타입 등록
DMContainer.RegisterSingleton<IMyService, MyService>();
서비스 해석
IMyService service = DMContainer.Resolve<IMyService>();
Dreamine 애플리케이션 타입 자동 등록
DMContainer.AutoRegisterAll(typeof(App).Assembly);
테스트에서 정적 Facade 초기화
DMContainer.Reset();
정적 Facade Container 교체
DMContainer.SetContainer(new DreamineContainer());
컴포넌트 설명
DMContainer
DMContainer는 기본 DreamineContainer 인스턴스를 감싸는 정적 Facade입니다.
역할은 애플리케이션 레벨에서 단순한 사용 방식을 유지하면서 실제 동작을 역할별 인프라 컴포넌트에 위임하는 것입니다.
DMContainer는 얇게 유지되어야 합니다. Assembly 스캔, 생성자 선택, 객체 생성, 수명 관리 로직을 직접 포함하면 안 됩니다.
DreamineContainer
DreamineContainer는 기본 의존성 컨테이너 구현체입니다.
주요 역할:
- 서비스 등록 정보 저장
- 등록된 서비스 해석
- 생성자 의존성 해석
- 싱글턴 인스턴스 캐싱
- Transient 인스턴스 생성
- 해석 중 순환 참조 감지
- 객체 생성을
IObjectActivator에 위임
ConstructorActivator
ConstructorActivator는 생성자 주입을 사용해 객체 인스턴스를 생성합니다.
주요 역할:
IConstructorSelector를 통해 생성자 선택IServiceResolver를 통해 생성자 파라미터 해석- Reflection 기반 객체 생성
AutoRegistrationService
AutoRegistrationService는 규칙 기반 서비스 등록을 수행합니다.
주요 역할:
- 후보 Assembly 스캔
- 지원되는 구체 타입 필터링
- 조건에 맞는 타입을 Singleton 서비스로 등록
설계 목표
Dreamine.MVVM.Core는 다음을 우선합니다.
- 숨겨진 런타임 마법보다 명시적 동작
- 낮은 의존성 표면적
- 생성자 기반 구성
- 인터페이스 중심 인프라
- 예측 가능한 서비스 수명 동작
- Dreamine 자동 등록과의 호환성
- 계약과 구현의 분리
- WPF 전용 UI 관심사와의 분리
관련 모듈
일반적으로 다음 Dreamine 패키지와 함께 구성됩니다.
Dreamine.MVVM.InterfacesDreamine.MVVM.AttributesDreamine.MVVM.GeneratorsDreamine.MVVM.LocatorsDreamine.MVVM.Locators.WpfDreamine.MVVM.ViewModelsDreamine.MVVM.Wpf
License
MIT License
구조 다이어그램
classDiagram
class DMContainer {
<<static>>
+Services IServiceProvider
+Initialize(IServiceProvider) void
+GetService~T~() T
+IsRegistered~T~() bool
}
class ServiceRegistry {
-IServiceCollection _services
+Register~T~() IServiceRegistry
+RegisterSingleton~T~() IServiceRegistry
+RegisterTransient~T~() IServiceRegistry
+Build() IServiceProvider
}
class DreamineAutoRegistrar {
+ScanAndRegister(Assembly) void
+ScanAndRegister(Assembly, IServiceRegistry) void
-FindViewModels(Assembly) IEnumerable
-FindServices(Assembly) IEnumerable
}
class IServiceRegistry {
<<interface>>
}
IServiceRegistry <|.. ServiceRegistry
DreamineAutoRegistrar --> IServiceRegistry
DMContainer --> IServiceRegistryAPI 문서
타입
\if KO Assembly Type Scanner 기능과 관련 상태를 캡슐화합니다. \endif \if EN Scans assemblies and returns loadable types safely. \endif
\if KO Auto Registration Service 기능과 관련 상태를 캡슐화합니다. \endif \if EN Automatically registers Dreamine-supported types. \endif
\if KO Constructor Activator 기능과 관련 상태를 캡슐화합니다. \endif \if EN Creates object instances by resolving constructor parameters. \endif
\if KO Constructor Selector 기능과 관련 상태를 캡슐화합니다. \endif \if EN Selects the constructor with the largest number of parameters. \endif
\if KO DM Container 기능과 관련 상태를 캡슐화합니다. \endif \if EN Provides a static facade for the default Dreamine dependency container. \endif
\if KO Dreamine Auto Registrar 기능과 관련 상태를 캡슐화합니다. \endif \if EN Scans assemblies and registers matching types into a service registry. Separated from to keep the DI facade focused on registration and resolution, not type scanning. \endif
\if KO Dreamine Container 기능과 관련 상태를 캡슐화합니다. \endif \if EN Default dependency container implementation for Dreamine. \endif
\if KO Dreamine Container View Model Resolver 기능과 관련 상태를 캡슐화합니다. \endif \if EN Resolves ViewModel instances through the Dreamine dependency container. \endif
\if KO Naming Convention Auto Registration Filter 기능과 관련 상태를 캡슐화합니다. \endif \if EN Determines whether a type matches Dreamine auto-registration naming conventions. \endif
\if KO Resolution Context 기능과 관련 상태를 캡슐화합니다. \endif \if EN Tracks a single Resolve call graph so circular dependency detection is isolated per thread/async flow. \endif
\if KO Service Descriptor 기능과 관련 상태를 캡슐화합니다. \endif \if EN Describes a registered service. \endif
\if KO Service Lifetime 기능과 관련 상태를 캡슐화합니다. \endif \if EN Represents the lifetime of a registered service. \endif
AssemblyTypeScanner
\if KO Candidate Assemblies 값을 가져옵니다. \endif \if EN Gets candidate assemblies for auto registration. \endif
rootAssembly— \if KO root Assembly에 사용할 값입니다. \endif \if EN The root assembly to prioritize. \endif반환: \if KO Get Candidate Assemblies 작업에서 생성한 결과입니다. \endif \if EN The candidate assemblies. \endif
\if KO Loadable Types 값을 가져옵니다. \endif \if EN Gets loadable types from the specified assembly. \endif
assembly— \if KO assembly에 사용할 값입니다. \endif \if EN The assembly to scan. \endif반환: \if KO Get Loadable Types 작업에서 생성한 결과입니다. \endif \if EN The loadable types. \endif
AutoRegistrationService
\if KO 지정한 설정으로 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of the class. \endif
typeScanner— \if KO type Scanner에 사용할 값입니다. \endif \if EN The assembly type scanner. \endiffilter— \if KO filter에 사용할 값입니다. \endif \if EN The auto-registration filter. \endif\if KO Register All 작업을 수행합니다. \endif \if EN Registers supported types from the specified root assembly. \endif
rootAssembly— \if KO root Assembly에 사용할 값입니다. \endif \if EN The root assembly to scan first. \endifregistry— \if KO registry에 사용할 값입니다. \endif \if EN The service registry to populate. \endif\if KO Register Assembly Types 작업을 수행합니다. \endif \if EN Performs the register assembly types operation. \endif
assembly— \if KO assembly에 사용할 값입니다. \endif \if EN The value used for assembly. \endifregistry— \if KO registry에 사용할 값입니다. \endif \if EN The value used for registry. \endif\if KO Register Singleton By Reflection 작업을 수행합니다. \endif \if EN Performs the register singleton by reflection operation. \endif
implementationType— \if KO implementation Type에 사용할 값입니다. \endif \if EN The value used for implementation type. \endifregistry— \if KO registry에 사용할 값입니다. \endif \if EN The value used for registry. \endif\if KO Register Type 작업을 수행합니다. \endif \if EN Performs the register type operation. \endif
type— \if KO type에 사용할 값입니다. \endif \if EN The value used for type. \endifregistry— \if KO registry에 사용할 값입니다. \endif \if EN The value used for registry. \endif\if KO filter 값을 보관합니다. \endif \if EN Stores the filter value. \endif
\if KO type Scanner 값을 보관합니다. \endif \if EN Stores the type scanner value. \endif
ConstructorActivator
\if KO 지정한 설정으로 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of the class. \endif
constructorSelector— \if KO constructor Selector에 사용할 값입니다. \endif \if EN The constructor selector. \endif\if KO Instance 값을 생성합니다. \endif \if EN Creates an instance of the specified implementation type. \endif
implementationType— \if KO implementation Type에 사용할 값입니다. \endif \if EN The implementation type. \endifresolver— \if KO resolver에 사용할 값입니다. \endif \if EN The resolver used to resolve constructor dependencies. \endif반환: \if KO Create Instance 작업에서 생성한 결과입니다. \endif \if EN The created object instance. \endif
\if KO constructor Selector 값을 보관합니다. \endif \if EN Stores the constructor selector value. \endif
ConstructorSelector
\if KO Select Constructor 작업을 수행합니다. \endif \if EN Selects the constructor to use for the specified implementation type. \endif
implementationType— \if KO implementation Type에 사용할 값입니다. \endif \if EN The implementation type. \endif반환: \if KO Select Constructor 작업에서 생성한 결과입니다. \endif \if EN The selected constructor. \endif
DMContainer
\if KO Auto Register All 작업을 수행합니다. \endif \if EN Automatically registers supported types from the specified root assembly using singleton lifetime. \endif
rootAssembly— \if KO root Assembly에 사용할 값입니다. \endif \if EN The root assembly to scan first. \endif\if KO Default Container 값을 생성합니다. \endif \if EN Creates the default container value. \endif
반환: \if KO Create Default Container 작업에서 생성한 결과입니다. \endif \if EN The result produced by the create default container operation. \endif
\if KO Registry 값을 가져옵니다. \endif \if EN Returns the underlying so that external utilities (e.g. ) can register types without going through the static facade methods. \endif
반환: \if KO Get Registry 작업에서 생성한 결과입니다. \endif \if EN The result produced by the get registry operation. \endif
\if KO Resolver 값을 가져옵니다. \endif \if EN Returns the underlying for constructor injection scenarios where callers want to avoid a direct static dependency on . \endif
반환: \if KO Get Resolver 작업에서 생성한 결과입니다. \endif \if EN The result produced by the get resolver operation. \endif
\if KO Is Registered 조건을 확인합니다. \endif \if EN Determines whether the specified service type is registered. \endif
serviceType— \if KO service Type에 사용할 값입니다. \endif \if EN The service type. \endif반환: \if KO Is Registered 조건이 충족되면 이고, 그렇지 않으면 입니다. \endif \if EN True if the service type is registered; otherwise false. \endif
\if KO Is Registered 조건을 확인합니다. \endif \if EN Determines whether the specified service type is registered. \endif
반환: \if KO Is Registered 조건이 충족되면 이고, 그렇지 않으면 입니다. \endif \if EN True if the service type is registered; otherwise false. \endif
\if KO Register 작업을 수행합니다. \endif \if EN Registers a concrete implementation type as itself with transient lifetime. \endif
\if KO Register 작업을 수행합니다. \endif \if EN Registers a factory for the specified service type using transient lifetime. \endif
factory— \if KO factory에 사용할 Func<TService> 값입니다. \endif \if EN The factory used to create the service instance. \endif\if KO Register 작업을 수행합니다. \endif \if EN Registers a service abstraction with a concrete implementation using transient lifetime. \endif
\if KO Register Singleton 작업을 수행합니다. \endif \if EN Registers a singleton instance for the specified service type. \endif
instance— \if KO instance에 사용할 값입니다. \endif \if EN The singleton instance. \endif\if KO Register Singleton 작업을 수행합니다. \endif \if EN Registers a concrete implementation type as itself with singleton lifetime. \endif
\if KO Register Singleton 작업을 수행합니다. \endif \if EN Registers a service abstraction with a concrete implementation using singleton lifetime. \endif
\if KO Reset 작업을 수행합니다. \endif \if EN Resets the static facade to a new empty instance. \endif
\if KO Resolve 작업을 수행합니다. \endif \if EN Resolves an instance of the specified service type. \endif
type— \if KO type에 사용할 값입니다. \endif \if EN The service type. \endif반환: \if KO Resolve 작업에서 생성한 결과입니다. \endif \if EN The resolved service instance. \endif
\if KO Resolve 작업을 수행합니다. \endif \if EN Resolves an instance of the specified service type. \endif
반환: \if KO Resolve 작업에서 생성한 결과입니다. \endif \if EN The resolved service instance. \endif
\if KO Container 값을 설정합니다. \endif \if EN Replaces the default container used by the static facade. \endif
container— \if KO container에 사용할 값입니다. \endif \if EN The container to use for subsequent registrations and resolutions. \endif\if KO Resolve 작업을 시도하고 성공 여부를 반환합니다. \endif \if EN Attempts to resolve an instance of the specified service type without throwing. \endif
result— \if KO result에 사용할 값입니다. \endif \if EN The resolved instance, or null if not registered. \endif반환: \if KO Try Resolve 조건이 충족되면 이고, 그렇지 않으면 입니다. \endif \if EN true if resolved successfully; otherwise false. \endif
\if KO Container 값을 보관합니다. \endif \if EN Stores the container value. \endif
\if KO Sync Root 값을 보관합니다. \endif \if EN Stores the sync root value. \endif
DreamineAutoRegistrar
\if KO Register All 작업을 수행합니다. \endif \if EN Scans and all transitively referenced Dreamine assemblies for types that match the naming convention, then registers them into with singleton lifetime. \endif
rootAssembly— \if KO root Assembly에 사용할 값입니다. \endif \if EN The assembly to scan first. \endifregistry— \if KO registry에 사용할 값입니다. \endif \if EN The registry to register discovered types into. \endif\if KO Register All 작업을 수행합니다. \endif \if EN Scans and registers matching types into the global singleton. \endif
rootAssembly— \if KO root Assembly에 사용할 값입니다. \endif \if EN The assembly to scan first. \endif\if KO Service 값을 보관합니다. \endif \if EN Stores the service value. \endif
DreamineContainer
\if KO 지정한 설정으로 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of the class. \endif
\if KO 지정한 설정으로 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of the class. \endif
objectActivator— \if KO object Activator에 사용할 값입니다. \endif \if EN The object activator. \endif\if KO Can Create Unregistered Concrete Type 조건을 확인합니다. \endif \if EN Determines whether can create unregistered concrete type. \endif
type— \if KO type에 사용할 값입니다. \endif \if EN The value used for type. \endif반환: \if KO Can Create Unregistered Concrete Type 조건이 충족되면 이고, 그렇지 않으면 입니다. \endif \if EN when the can create unregistered concrete type condition is satisfied; otherwise, . \endif
\if KO Concrete 값을 생성합니다. \endif \if EN Creates the concrete value. \endif
implementationType— \if KO implementation Type에 사용할 값입니다. \endif \if EN The value used for implementation type. \endif반환: \if KO Create Concrete 작업에서 생성한 결과입니다. \endif \if EN The result produced by the create concrete operation. \endif
\if KO 이 인스턴스가 소유한 리소스를 해제합니다. \endif \if EN Disposes all singleton instances that implement , then clears all registrations. \endif
\if KO Is Registered 조건을 확인합니다. \endif \if EN Determines whether the specified service type is registered. \endif
serviceType— \if KO service Type에 사용할 값입니다. \endif \if EN The service type. \endif반환: \if KO Is Registered 조건이 충족되면 이고, 그렇지 않으면 입니다. \endif \if EN True if the service type is registered; otherwise false. \endif
\if KO Register 작업을 수행합니다. \endif \if EN Registers a concrete implementation type as itself. \endif
\if KO Register 작업을 수행합니다. \endif \if EN Registers a factory for the specified service type. \endif
factory— \if KO factory에 사용할 Func<TService> 값입니다. \endif \if EN The factory used to create the service instance. \endif\if KO Register 작업을 수행합니다. \endif \if EN Registers a service abstraction with a concrete implementation. \endif
\if KO Register Singleton 작업을 수행합니다. \endif \if EN Registers a singleton instance for the specified service type. \endif
instance— \if KO instance에 사용할 값입니다. \endif \if EN The singleton instance. \endif\if KO Register Singleton 작업을 수행합니다. \endif \if EN Registers a concrete implementation type as itself with singleton lifetime. \endif
\if KO Register Singleton 작업을 수행합니다. \endif \if EN Registers a service abstraction with a concrete implementation using singleton lifetime. \endif
\if KO Resolve 작업을 수행합니다. \endif \if EN Resolves an instance of the specified service type. \endif
serviceType— \if KO service Type에 사용할 값입니다. \endif \if EN The service type. \endif반환: \if KO Resolve 작업에서 생성한 결과입니다. \endif \if EN The resolved service instance. \endif
\if KO Resolve 작업을 수행합니다. \endif \if EN Resolves an instance of the specified service type. \endif
반환: \if KO Resolve 작업에서 생성한 결과입니다. \endif \if EN The resolved service instance. \endif
\if KO Resolve Core 작업을 수행합니다. \endif \if EN Performs the resolve core operation. \endif
serviceType— \if KO service Type에 사용할 값입니다. \endif \if EN The value used for service type. \endif반환: \if KO Resolve Core 작업에서 생성한 결과입니다. \endif \if EN The result produced by the resolve core operation. \endif
\if KO Resolve 작업을 시도하고 성공 여부를 반환합니다. \endif \if EN Attempts to resolve an instance of the specified service type without throwing. \endif
result— \if KO result에 사용할 값입니다. \endif \if EN The resolved instance, or null if not registered. \endif반환: \if KO Try Resolve 조건이 충족되면 이고, 그렇지 않으면 입니다. \endif \if EN true if resolved successfully; otherwise false. \endif
\if KO current Resolution Context 값을 보관합니다. \endif \if EN Stores the current resolution context value. \endif
\if KO descriptors 값을 보관합니다. \endif \if EN Stores the descriptors value. \endif
\if KO disposed 값을 보관합니다. \endif \if EN Stores the disposed value. \endif
\if KO object Activator 값을 보관합니다. \endif \if EN Stores the object activator value. \endif
\if KO singleton Instances 값을 보관합니다. \endif \if EN Stores the singleton instances value. \endif
\if KO sync Root 값을 보관합니다. \endif \if EN Stores the sync root value. \endif
DreamineContainerViewModelResolver
\if KO Resolve 작업을 수행합니다. \endif \if EN Performs the resolve operation. \endif
viewModelType— \if KO view Model Type에 사용할 값입니다. \endif \if EN The value used for view model type. \endif반환: \if KO Resolve 작업에서 생성한 결과입니다. \endif \if EN The result produced by the resolve operation. \endif
NamingConventionAutoRegistrationFilter
\if KO Has Explicit Dreamine Registration Attribute 조건을 확인합니다. \endif \if EN Determines whether has explicit dreamine registration attribute. \endif
type— \if KO type에 사용할 값입니다. \endif \if EN The value used for type. \endif반환: \if KO Has Explicit Dreamine Registration Attribute 조건이 충족되면 이고, 그렇지 않으면 입니다. \endif \if EN when the has explicit dreamine registration attribute condition is satisfied; otherwise, . \endif
\if KO Is Concrete Class 조건을 확인합니다. \endif \if EN Determines whether is concrete class. \endif
type— \if KO type에 사용할 값입니다. \endif \if EN The value used for type. \endif반환: \if KO Is Concrete Class 조건이 충족되면 이고, 그렇지 않으면 입니다. \endif \if EN when the is concrete class condition is satisfied; otherwise, . \endif
\if KO Is Manager Target 조건을 확인합니다. \endif \if EN Determines whether is manager target. \endif
name— \if KO name에 사용할 값입니다. \endif \if EN The value used for name. \endiffullName— \if KO full Name에 사용할 값입니다. \endif \if EN The value used for full name. \endif반환: \if KO Is Manager Target 조건이 충족되면 이고, 그렇지 않으면 입니다. \endif \if EN when the is manager target condition is satisfied; otherwise, . \endif
\if KO Is Target 조건을 확인합니다. \endif \if EN Determines whether the specified type is eligible for auto registration. \endif
type— \if KO type에 사용할 값입니다. \endif \if EN The type to inspect. \endif반환: \if KO Is Target 조건이 충족되면 이고, 그렇지 않으면 입니다. \endif \if EN True if the type is eligible; otherwise false. \endif
ResolutionContext
\if KO Exit 작업을 수행합니다. \endif \if EN Performs the exit operation. \endif
implementationType— \if KO implementation Type에 사용할 값입니다. \endif \if EN The value used for implementation type. \endif\if KO Enter 작업을 시도하고 성공 여부를 반환합니다. \endif \if EN Attempts to enter and returns whether the operation succeeds. \endif
implementationType— \if KO implementation Type에 사용할 값입니다. \endif \if EN The value used for implementation type. \endif반환: \if KO Try Enter 조건이 충족되면 이고, 그렇지 않으면 입니다. \endif \if EN when the try enter condition is satisfied; otherwise, . \endif
\if KO resolving Types 값을 보관합니다. \endif \if EN Stores the resolving types value. \endif
ServiceDescriptor
\if KO 지정한 설정으로 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of the class. \endif
serviceType— \if KO service Type에 사용할 값입니다. \endif \if EN The service abstraction type. \endifimplementationType— \if KO implementation Type에 사용할 값입니다. \endif \if EN The implementation type. \endiffactory— \if KO factory에 사용할 Func<object> 값입니다. \endif \if EN The optional factory. \endifinstance— \if KO instance에 사용할 값입니다. \endif \if EN The optional singleton instance. \endiflifetime— \if KO lifetime에 사용할 값입니다. \endif \if EN The service lifetime. \endif\if KO Factory 값을 가져옵니다. \endif \if EN Gets the factory used to create the service instance. \endif
\if KO Implementation Type 값을 가져옵니다. \endif \if EN Gets the concrete implementation type. \endif
\if KO Instance 값을 가져옵니다. \endif \if EN Gets the registered singleton instance. \endif
\if KO Lifetime 값을 가져옵니다. \endif \if EN Gets the service lifetime. \endif
\if KO Service Type 값을 가져옵니다. \endif \if EN Gets the service abstraction type. \endif
ServiceLifetime
\if KO Singleton 값을 나타냅니다. \endif \if EN A single instance is reused for the lifetime of the container. \endif
\if KO Transient 값을 나타냅니다. \endif \if EN A new instance is created every time the service is resolved. \endif