2016-09-20 2 views
0

다음 두 코드는 정확히 동일한 작업을 수행합니까?RegisterType (typeof) vs RegisterType

.RegisterType<ICrmService, CrmService>() 

짧은에서

.RegisterType(typeof(ICrmService), typeof(CrmService)) 
+1

질문의 제목이 REGISTERTYPE 및 RegisterInstance에 대해 말한다. 질문 내용과 관련된 내용은 무엇입니까? – tsimbalar

+0

감사합니다. 제목을 업데이트했습니다. –

+0

예 그들은 똑같은 일을합니다. – Jonesopolis

답변

2

: 예 그들은 않습니다.

그냥 소스 코드를 보면 : https://unity.codeplex.com/SourceControl/latest#source/Unity/Src/UnityContainerExtensions.cs

일반적인 방법 :

public static IUnityContainer RegisterType<TFrom, TTo>(this IUnityContainer container, params InjectionMember[] injectionMembers) where TTo : TFrom 
{ 
    Guard.ArgumentNotNull(container, "container"); 
    return container.RegisterType(typeof(TFrom), typeof(TTo), null, null, injectionMembers); 
} 

비 일반적인 방법

public static IUnityContainer RegisterType(this IUnityContainer container, Type from, Type to, params InjectionMember[] injectionMembers) 
{ 
    Guard.ArgumentNotNull(container, "container"); 
    return container.RegisterType(from, to, null, null, injectionMembers); 
} 
+1

일반적인 과부하의 장점은 런타임에 코드가 실패하는 대신 C# 컴파일러가 (컴파일 타임에) 유형 검사를 수행한다는 것입니다. 'TFrom'은'TTo'에서 할당 할 수 없습니다. – Steven

관련 문제