Dreamine.MVVM.Core 1.0.13
중요: 자동 등록된 타입은 기본적으로 Singleton으로 등록됩니다. 따라서 자동 발견된 ViewModel, Model, Event, Manager는 애플리케이션이 별도 수명으로 명시 등록하지 않는 한 반복 해석 시 동일 인스턴스를 유지합니다.
로딩중...
검색중...
일치하는것 없음
Dreamine.MVVM.Core.AutoRegistration.AutoRegistrationService 클래스 참조sealed

더 자세히 ...

Dreamine.MVVM.Core.AutoRegistration.AutoRegistrationService에 대한 상속 다이어그램 :
Dreamine.MVVM.Core.AutoRegistration.AutoRegistrationService에 대한 협력 다이어그램:

Public 멤버 함수

 AutoRegistrationService (IAssemblyTypeScanner typeScanner, IAutoRegistrationFilter filter)
void RegisterAll (Assembly rootAssembly, IServiceRegistry registry)

Private 멤버 함수

void RegisterAssemblyTypes (Assembly assembly, IServiceRegistry registry)
void RegisterType (Type type, IServiceRegistry registry)

정적 Private 멤버 함수

static void RegisterSingletonByReflection (Type implementationType, IServiceRegistry registry)

Private 속성

readonly IAssemblyTypeScanner _typeScanner
readonly IAutoRegistrationFilter _filter

상세한 설명

Auto Registration Service 기능과 관련 상태를 캡슐화합니다.

AutoRegistrationService.cs 파일의 16 번째 라인에서 정의되었습니다.

생성자 & 소멸자 문서화

◆ AutoRegistrationService()

Dreamine.MVVM.Core.AutoRegistration.AutoRegistrationService.AutoRegistrationService ( IAssemblyTypeScanner typeScanner,
IAutoRegistrationFilter filter )
inline

지정한 설정으로 AutoRegistrationService 클래스의 새 인스턴스를 초기화합니다.

매개변수
typeScannertype Scanner에 사용할 IAssemblyTypeScanner 값입니다.
filterfilter에 사용할 IAutoRegistrationFilter 값입니다.
예외
ArgumentNullException필수 입력 인자 중 하나가 null인 경우 발생합니다.

AutoRegistrationService.cs 파일의 69 번째 라인에서 정의되었습니다.

72 {
73 _typeScanner = typeScanner ?? throw new ArgumentNullException(nameof(typeScanner));
74 _filter = filter ?? throw new ArgumentNullException(nameof(filter));
75 }

다음을 참조함 : _filter, _typeScanner.

멤버 함수 문서화

◆ RegisterAll()

void Dreamine.MVVM.Core.AutoRegistration.AutoRegistrationService.RegisterAll ( Assembly rootAssembly,
IServiceRegistry registry )
inline

Register All 작업을 수행합니다.

매개변수
rootAssemblyroot Assembly에 사용할 Assembly 값입니다.
registryregistry에 사용할 IServiceRegistry 값입니다.
예외
ArgumentNullException필수 입력 인자 중 하나가 null인 경우 발생합니다.

AutoRegistrationService.cs 파일의 109 번째 라인에서 정의되었습니다.

110 {
111 if (rootAssembly is null)
112 {
113 throw new ArgumentNullException(nameof(rootAssembly));
114 }
115
116 if (registry is null)
117 {
118 throw new ArgumentNullException(nameof(registry));
119 }
120
121 foreach (Assembly assembly in _typeScanner.GetCandidateAssemblies(rootAssembly))
122 {
123 RegisterAssemblyTypes(assembly, registry);
124 }
125 }

다음을 참조함 : _typeScanner, RegisterAssemblyTypes().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ RegisterAssemblyTypes()

void Dreamine.MVVM.Core.AutoRegistration.AutoRegistrationService.RegisterAssemblyTypes ( Assembly assembly,
IServiceRegistry registry )
inlineprivate

Register Assembly Types 작업을 수행합니다.

매개변수
assemblyassembly에 사용할 Assembly 값입니다.
registryregistry에 사용할 IServiceRegistry 값입니다.

AutoRegistrationService.cs 파일의 151 번째 라인에서 정의되었습니다.

152 {
153 foreach (Type type in _typeScanner.GetLoadableTypes(assembly))
154 {
155 RegisterType(type, registry);
156 }
157 }

다음을 참조함 : _typeScanner, RegisterType().

다음에 의해서 참조됨 : RegisterAll().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ RegisterSingletonByReflection()

void Dreamine.MVVM.Core.AutoRegistration.AutoRegistrationService.RegisterSingletonByReflection ( Type implementationType,
IServiceRegistry registry )
inlinestaticprivate

Register Singleton By Reflection 작업을 수행합니다.

매개변수
implementationTypeimplementation Type에 사용할 Type 값입니다.
registryregistry에 사용할 IServiceRegistry 값입니다.

AutoRegistrationService.cs 파일의 222 번째 라인에서 정의되었습니다.

223 {
224 MethodInfo registerMethod = typeof(IServiceRegistry)
225 .GetMethods()
226 .Single(method =>
227 method.Name == nameof(IServiceRegistry.RegisterSingleton) &&
228 method.IsGenericMethodDefinition &&
229 method.GetGenericArguments().Length == 1 &&
230 method.GetParameters().Length == 0);
231
232 MethodInfo closedMethod = registerMethod.MakeGenericMethod(implementationType);
233
234 closedMethod.Invoke(registry, null);
235 }

다음에 의해서 참조됨 : RegisterType().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ RegisterType()

void Dreamine.MVVM.Core.AutoRegistration.AutoRegistrationService.RegisterType ( Type type,
IServiceRegistry registry )
inlineprivate

Register Type 작업을 수행합니다.

매개변수
typetype에 사용할 Type 값입니다.
registryregistry에 사용할 IServiceRegistry 값입니다.

AutoRegistrationService.cs 파일의 183 번째 라인에서 정의되었습니다.

184 {
185 if (!_filter.IsTarget(type))
186 {
187 return;
188 }
189
190 if (registry.IsRegistered(type))
191 {
192 return;
193 }
194
195 RegisterSingletonByReflection(type, registry);
196 }

다음을 참조함 : _filter, RegisterSingletonByReflection().

다음에 의해서 참조됨 : RegisterAssemblyTypes().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ _filter

readonly IAutoRegistrationFilter Dreamine.MVVM.Core.AutoRegistration.AutoRegistrationService._filter
private

filter 값을 보관합니다.

AutoRegistrationService.cs 파일의 35 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : AutoRegistrationService(), RegisterType().

◆ _typeScanner

readonly IAssemblyTypeScanner Dreamine.MVVM.Core.AutoRegistration.AutoRegistrationService._typeScanner
private

type Scanner 값을 보관합니다.

AutoRegistrationService.cs 파일의 26 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : AutoRegistrationService(), RegisterAll(), RegisterAssemblyTypes().


이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.: