아래는 유니티컨테이너를 이용해서 인젝션 구현( 이부분은 없습니다.) 하고
그 상황에서 인젝션된 객체의 타입(클래스)를 가져와 비교하여 변수에 담는 … 건데요
제가 알고 싶은것은 이러한 유니티 처러방법을 다 알고 있어야 하는 건지요?
다른 개발자분들도 이걸 다알고 개발하시는 건가요?
아니면 그냥 어디서 혹은 누군가가 이렇게 해놓은 것을 가져다 쓰는 것인가요 거의 똑같이요
어셈블리나 유니티 메소드등이 어떤 역할을 하는 지 에 관련등등이요.
파고 들어가도 그냥 getter, setter 처리 , 컬렉션 반환 구문등 너무 어렵네요…
CONTAINER.AddExtension(new Diagnostic());
// 대표적인 타입을 기준으로 어셈블리 호출
var injectTypeList = Assembly.GetAssembly(initialType).GetTypes()
.Where(t =>
t.CustomAttributes.Where(t2 => t2.AttributeType == typeof(InjectionAttribute)).Count() > 0);
foreach (var typeItem in injectTypeList)
{
// 사용자 정의 속성 조회
var attr = typeItem.CustomAttributes.Where(t => t.AttributeType == typeof(InjectionAttribute)).SingleOrDefault();
string serviceName = attr.NamedArguments.Where(na => na.MemberName == "ServiceName").SingleOrDefault().TypedValue.Value.Nvl();
Type interfaceType = attr.NamedArguments.Where(na => na.MemberName == "InterfaceType").SingleOrDefault().TypedValue.Value as Type;
Type interceptorType = attr.NamedArguments.Where(na => na.MemberName == "InterceptorType").SingleOrDefault().TypedValue.Value as Type;
LifeCycle lifeCycle = (LifeCycle)attr.NamedArguments.Where(na => na.MemberName == "LifeCycle").SingleOrDefault().TypedValue.Value;
var typeLifeTime = TypeLifetime.Singleton;
}