在我的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)''''''这样你就得到了一个描述问题的详细异常。 –