0
以下兩段代碼是否完全相同?RegisterType(typeof)vs RegisterType
.RegisterType<ICrmService, CrmService>()
和
.RegisterType(typeof(ICrmService), typeof(CrmService))
以下兩段代碼是否完全相同?RegisterType(typeof)vs RegisterType
.RegisterType<ICrmService, CrmService>()
和
.RegisterType(typeof(ICrmService), typeof(CrmService))
簡而言之:是的,他們做的。
只要看看源代碼: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);
}
通用重載的優點是事實上C#編譯器會在編譯時爲你做類型檢查,而不是讓代碼在運行時失敗'TFrom'不能從'TTo'分配。 – Steven
您的問題標題談到RegisterType和RegisterInstance。問題的內容如何相關? – tsimbalar
謝謝,ive更新了標題 –
是的他們做同樣的事情 – Jonesopolis