2010-04-22 49 views
4

我想根據設置動態加載我的驗證服務器類型。當我不知道這種類型時,我就掛上瞭如何投射到某種類型。需要在不知道對象是什麼類型的情況下投射到對象

Type t = Type.GetType(WebConfigurationManager.AppSettings.Get("AuthenticationSvcImpl")); 
    IAuthenticationService authCli = Activator.CreateInstance(t); 
    return authCli.AuthenticateUser(login); 

我知道有Convert.ChangeType(),但只是轉換爲一個對象...

回答

3
var authCli = Activator.CreateInstance(t) as IAuthenticationService; 
+0

這樣做的伎倆......儘管不明白 - 爲什麼var? – jle 2010-04-22 10:14:20

+0

'var'只是爲了節省空間,否則行很長,我懶得分割它:)在這種情況下,'var' == IAuthenticationService'。基本上,你的類型在編譯時是已知的,而不是實際的類型,但是兼容的接口類型。 – leppie 2010-04-22 10:24:43

0

是你在找什麼?

Type t = Type.GetType(WebConfigurationManager.AppSettings.Get("AuthenticationSvcImpl")); 
IAuthenticationService authCli = (IAuthenticationService) Activator.CreateInstance(t); 
return authCli.AuthenticateUser(login); 
相關問題