在我的MVC項目的web.config
,我有這樣的:爲什麼我無法從其他程序集加載類?
<appSettings>
<add key="MembershipRepository" value="Repo.MembershipRepository"/>
</appSettings>
我有這樣的代碼:
var appSettings = ConfigurationManager.AppSettings;
string membershipRepositoryClassName = appSettings["MembershipRepository"];
Type membershipRepositoryType = Type.GetType(membershipRepositoryClassName);
IMembershipRepository repository = (IMembershipRepository)Activator.CreateInstance(membershipRepositoryType);
假設,包含web.config
Web應用程序是用匯編Web
。 我給出的代碼段是彙編Lib
。 類MembershipRepository
在組裝Repo
。 Web
提及Lib
和Repo
。 Lib
沒有引用任何其他程序集(它可能被引用爲dll)。 Repo
可能會或可能不會參考Lib
。我得到membershipRepositoryType
爲null
。我明白,也許我需要指定MembershipRepository
所在的程序集。一種方法是在配置中指定程序集名稱(如this)。但我認爲應該有其他方法。否則,如何加載其他類只從配置文件中創建類名? 例如,MembershipProvider
類從其他程序集加載得很好。
我該怎麼辦。或者如果我不能,爲什麼我不能?
故障排除提示:將'true'傳遞給'Type.GetType'''Type.GetType(membershipRepositoryClassName,true)''''''這樣你就得到了一個描述問題的詳細異常。 –