iconDreamine
← 목록

Dreamine.MVVM.Core

stablev1.0.13

ViewModel 기반 핵심 인프라. RelayCommand, ObservableObject, DI 자동 등록 포함.

#core#dreamine#mvvm#notification#runtime#viewmodel
TFM net8.0Package Dreamine.MVVM.Core참조 Dreamine.MVVM.Attributes, Dreamine.MVVM.Locators

Dreamine.MVVM.Core

Dreamine.MVVM.Core는 Dreamine MVVM 프레임워크의 경량 런타임 인프라 구현 모듈입니다.

이 패키지는 Dreamine 모듈에서 사용하는 기본 의존성 주입 구현체를 제공합니다. 주요 역할은 명시적 서비스 등록, 생성자 기반 해석, 싱글턴 인스턴스 관리, 객체 생성, 규칙 기반 자동 등록입니다.

이 패키지는 런타임 인프라에 집중합니다. Window, UserControl, FrameworkElement, ContentControl, DataContext 같은 WPF 전용 UI 개념에 의존하지 않아야 합니다.

➡️ English Version


이 라이브러리가 제공하는 것

Dreamine.MVVM.Core는 다음 기능을 제공합니다.

  • DMContainer 정적 Facade
  • DreamineContainer 기본 의존성 컨테이너 구현체
  • Thread-safe 등록, 해석, Singleton 생성
  • Transient 서비스 등록
  • Singleton 서비스 등록
  • 팩토리 기반 서비스 등록
  • 생성자 기반 의존성 해석
  • 싱글턴 인스턴스 캐싱
  • 순환 참조 감지
  • 규칙 기반 자동 등록
  • Assembly 타입 스캔
  • IObjectActivator 기반 객체 생성
  • 테스트 격리를 위한 정적 Facade Reset 및 Container 교체 API

패키지 역할

Dreamine.MVVM.CoreDreamine.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를 스캔하고 지원되는 구체 타입을 등록합니다.

자동 등록은 다음 구성 요소를 통해 수행됩니다.

  • AutoRegistrationService
  • AssemblyTypeScanner
  • NamingConventionAutoRegistrationFilter

현재 이름 규칙은 다음 패턴에 해당하는 구체 비제네릭 클래스를 대상으로 합니다.

  • *Model
  • *Event
  • *ViewModel
  • .Managers. 또는 .xaml. 네임스페이스 아래의 *Manager
  • .xaml.Model
  • .xaml.Event
  • .xaml.ViewModel
  • DreamineRegisterAttribute 또는 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.Interfaces
  • Dreamine.MVVM.Attributes
  • Dreamine.MVVM.Generators
  • Dreamine.MVVM.Locators
  • Dreamine.MVVM.Locators.Wpf
  • Dreamine.MVVM.ViewModels
  • Dreamine.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 --> IServiceRegistry

API 문서

타입

AssemblyTypeScanner

\if KO Assembly Type Scanner 기능과 관련 상태를 캡슐화합니다. \endif \if EN Scans assemblies and returns loadable types safely. \endif

AutoRegistrationService

\if KO Auto Registration Service 기능과 관련 상태를 캡슐화합니다. \endif \if EN Automatically registers Dreamine-supported types. \endif

ConstructorActivator

\if KO Constructor Activator 기능과 관련 상태를 캡슐화합니다. \endif \if EN Creates object instances by resolving constructor parameters. \endif

ConstructorSelector

\if KO Constructor Selector 기능과 관련 상태를 캡슐화합니다. \endif \if EN Selects the constructor with the largest number of parameters. \endif

DMContainer

\if KO DM Container 기능과 관련 상태를 캡슐화합니다. \endif \if EN Provides a static facade for the default Dreamine dependency container. \endif

DreamineAutoRegistrar

\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

DreamineContainer

\if KO Dreamine Container 기능과 관련 상태를 캡슐화합니다. \endif \if EN Default dependency container implementation for Dreamine. \endif

DreamineContainerViewModelResolver

\if KO Dreamine Container View Model Resolver 기능과 관련 상태를 캡슐화합니다. \endif \if EN Resolves ViewModel instances through the Dreamine dependency container. \endif

NamingConventionAutoRegistrationFilter

\if KO Naming Convention Auto Registration Filter 기능과 관련 상태를 캡슐화합니다. \endif \if EN Determines whether a type matches Dreamine auto-registration naming conventions. \endif

ResolutionContext

\if KO Resolution Context 기능과 관련 상태를 캡슐화합니다. \endif \if EN Tracks a single Resolve call graph so circular dependency detection is isolated per thread/async flow. \endif

ServiceDescriptor

\if KO Service Descriptor 기능과 관련 상태를 캡슐화합니다. \endif \if EN Describes a registered service. \endif

ServiceLifetime

\if KO Service Lifetime 기능과 관련 상태를 캡슐화합니다. \endif \if EN Represents the lifetime of a registered service. \endif

AssemblyTypeScanner

GetCandidateAssemblies Method

\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

GetLoadableTypes Method

\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

#ctor Method

\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. \endif
filter— \if KO filter에 사용할 값입니다. \endif \if EN The auto-registration filter. \endif
RegisterAll Method

\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. \endif
registry— \if KO registry에 사용할 값입니다. \endif \if EN The service registry to populate. \endif
RegisterAssemblyTypes Method

\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. \endif
registry— \if KO registry에 사용할 값입니다. \endif \if EN The value used for registry. \endif
RegisterSingletonByReflection Method

\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. \endif
registry— \if KO registry에 사용할 값입니다. \endif \if EN The value used for registry. \endif
RegisterType Method

\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. \endif
registry— \if KO registry에 사용할 값입니다. \endif \if EN The value used for registry. \endif
_filter Field

\if KO filter 값을 보관합니다. \endif \if EN Stores the filter value. \endif

_typeScanner Field

\if KO type Scanner 값을 보관합니다. \endif \if EN Stores the type scanner value. \endif

ConstructorActivator

#ctor Method

\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
CreateInstance Method

\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. \endif
resolver— \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

_constructorSelector Field

\if KO constructor Selector 값을 보관합니다. \endif \if EN Stores the constructor selector value. \endif

ConstructorSelector

SelectConstructor Method

\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

AutoRegisterAll Method

\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
CreateDefaultContainer Method

\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

GetRegistry Method

\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

GetResolver Method

\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

IsRegistered Method

\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

IsRegistered``1 Method

\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

Register``1 Method

\if KO Register 작업을 수행합니다. \endif \if EN Registers a concrete implementation type as itself with transient lifetime. \endif

Register``1 Method

\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
Register``2 Method

\if KO Register 작업을 수행합니다. \endif \if EN Registers a service abstraction with a concrete implementation using transient lifetime. \endif

RegisterSingleton``1 Method

\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
RegisterSingleton``1 Method

\if KO Register Singleton 작업을 수행합니다. \endif \if EN Registers a concrete implementation type as itself with singleton lifetime. \endif

RegisterSingleton``2 Method

\if KO Register Singleton 작업을 수행합니다. \endif \if EN Registers a service abstraction with a concrete implementation using singleton lifetime. \endif

Reset Method

\if KO Reset 작업을 수행합니다. \endif \if EN Resets the static facade to a new empty instance. \endif

Resolve Method

\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

Resolve``1 Method

\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

SetContainer Method

\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
TryResolve``1 Method

\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

Container Field

\if KO Container 값을 보관합니다. \endif \if EN Stores the container value. \endif

SyncRoot Field

\if KO Sync Root 값을 보관합니다. \endif \if EN Stores the sync root value. \endif

DreamineAutoRegistrar

RegisterAll Method

\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. \endif
registry— \if KO registry에 사용할 값입니다. \endif \if EN The registry to register discovered types into. \endif
RegisterAll Method

\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
Service Field

\if KO Service 값을 보관합니다. \endif \if EN Stores the service value. \endif

DreamineContainer

#ctor Method

\if KO 지정한 설정으로 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of the class. \endif

#ctor Method

\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
CanCreateUnregisteredConcreteType Method

\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

CreateConcrete Method

\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

Dispose Method

\if KO 이 인스턴스가 소유한 리소스를 해제합니다. \endif \if EN Disposes all singleton instances that implement , then clears all registrations. \endif

IsRegistered Method

\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

Register``1 Method

\if KO Register 작업을 수행합니다. \endif \if EN Registers a concrete implementation type as itself. \endif

Register``1 Method

\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
Register``2 Method

\if KO Register 작업을 수행합니다. \endif \if EN Registers a service abstraction with a concrete implementation. \endif

RegisterSingleton``1 Method

\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
RegisterSingleton``1 Method

\if KO Register Singleton 작업을 수행합니다. \endif \if EN Registers a concrete implementation type as itself with singleton lifetime. \endif

RegisterSingleton``2 Method

\if KO Register Singleton 작업을 수행합니다. \endif \if EN Registers a service abstraction with a concrete implementation using singleton lifetime. \endif

Resolve Method

\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

Resolve``1 Method

\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

ResolveCore Method

\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

TryResolve``1 Method

\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

_currentResolutionContext Field

\if KO current Resolution Context 값을 보관합니다. \endif \if EN Stores the current resolution context value. \endif

_descriptors Field

\if KO descriptors 값을 보관합니다. \endif \if EN Stores the descriptors value. \endif

_disposed Field

\if KO disposed 값을 보관합니다. \endif \if EN Stores the disposed value. \endif

_objectActivator Field

\if KO object Activator 값을 보관합니다. \endif \if EN Stores the object activator value. \endif

_singletonInstances Field

\if KO singleton Instances 값을 보관합니다. \endif \if EN Stores the singleton instances value. \endif

_syncRoot Field

\if KO sync Root 값을 보관합니다. \endif \if EN Stores the sync root value. \endif

DreamineContainerViewModelResolver

Resolve Method

\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

HasExplicitDreamineRegistrationAttribute Method

\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

IsConcreteClass Method

\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

IsManagerTarget Method

\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. \endif
fullName— \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

IsTarget Method

\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

Exit Method

\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
TryEnter Method

\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

_resolvingTypes Field

\if KO resolving Types 값을 보관합니다. \endif \if EN Stores the resolving types value. \endif

ServiceDescriptor

#ctor Method

\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. \endif
implementationType— \if KO implementation Type에 사용할 값입니다. \endif \if EN The implementation type. \endif
factory— \if KO factory에 사용할 Func<object> 값입니다. \endif \if EN The optional factory. \endif
instance— \if KO instance에 사용할 값입니다. \endif \if EN The optional singleton instance. \endif
lifetime— \if KO lifetime에 사용할 값입니다. \endif \if EN The service lifetime. \endif
Factory Property

\if KO Factory 값을 가져옵니다. \endif \if EN Gets the factory used to create the service instance. \endif

ImplementationType Property

\if KO Implementation Type 값을 가져옵니다. \endif \if EN Gets the concrete implementation type. \endif

Instance Property

\if KO Instance 값을 가져옵니다. \endif \if EN Gets the registered singleton instance. \endif

Lifetime Property

\if KO Lifetime 값을 가져옵니다. \endif \if EN Gets the service lifetime. \endif

ServiceType Property

\if KO Service Type 값을 가져옵니다. \endif \if EN Gets the service abstraction type. \endif

ServiceLifetime

Singleton Field

\if KO Singleton 값을 나타냅니다. \endif \if EN A single instance is reused for the lifetime of the container. \endif

Transient Field

\if KO Transient 값을 나타냅니다. \endif \if EN A new instance is created every time the service is resolved. \endif