Dreamine.MVVM.Core
1.0.13
중요: 자동 등록된 타입은 기본적으로 Singleton으로 등록됩니다. 따라서 자동 발견된 ViewModel, Model, Event, Manager는 애플리케이션이 별도 수명으로 명시 등록하지 않는 한 반복 해석 시 동일 인스턴스를 유지합니다.
Toggle main menu visibility
로딩중...
검색중...
일치하는것 없음
ConstructorActivator.cs
이 파일의 문서화 페이지로 가기
1
using
System;
2
using
System.Linq;
3
using
Dreamine.MVVM.Interfaces.DependencyInjection;
4
5
namespace
Dreamine.MVVM.Core.DependencyInjection
6
{
15
public
sealed
class
ConstructorActivator
: IObjectActivator
16
{
25
private
readonly IConstructorSelector
_constructorSelector
;
26
51
public
ConstructorActivator
(IConstructorSelector constructorSelector)
52
{
53
_constructorSelector
= constructorSelector
54
??
throw
new
ArgumentNullException(nameof(constructorSelector));
55
}
56
105
public
object
CreateInstance
(Type implementationType, IServiceResolver resolver)
106
{
107
if
(implementationType is
null
)
108
{
109
throw
new
ArgumentNullException(nameof(implementationType));
110
}
111
112
if
(resolver is
null
)
113
{
114
throw
new
ArgumentNullException(nameof(resolver));
115
}
116
117
var constructor =
_constructorSelector
.SelectConstructor(implementationType);
118
119
object
[] arguments = constructor
120
.GetParameters()
121
.Select(parameter => resolver.Resolve(parameter.ParameterType))
122
.ToArray();
123
124
return
Activator.CreateInstance(implementationType, arguments)
125
??
throw
new
InvalidOperationException(
126
$
"Failed to create instance of [{implementationType.FullName}]."
);
127
}
128
}
129
}
Dreamine.MVVM.Core.DependencyInjection
Definition
ConstructorActivator.cs:6
Dreamine.MVVM.Core.DependencyInjection.ConstructorActivator._constructorSelector
readonly IConstructorSelector _constructorSelector
Definition
ConstructorActivator.cs:25
Dreamine.MVVM.Core.DependencyInjection.ConstructorActivator.CreateInstance
object CreateInstance(Type implementationType, IServiceResolver resolver)
Definition
ConstructorActivator.cs:105
Dreamine.MVVM.Core.DependencyInjection.ConstructorActivator.ConstructorActivator
ConstructorActivator(IConstructorSelector constructorSelector)
Definition
ConstructorActivator.cs:51
DependencyInjection
ConstructorActivator.cs
다음에 의해 생성됨 :
1.17.0