在web.config
我的 MVC 项目中,我有这个:
<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 应用程序web.config
在 assembly 中Web
。我给出的代码段是在汇编中Lib
。该课程MembershipRepository
正在组装中Repo
。
Web
参考了Lib
和Repo
。
Lib
没有对任何其他程序集的引用(它可能被引用为 dll)。
Repo
可能有也可能没有参考Lib
。
我明白membershipRepositoryType
了null
。我知道也许我需要指定其中的程序集MembershipRepository
。一种方法是在配置中指定程序集名称(像这样)。但我认为应该有一些其他的方式。否则如何加载其他类仅从配置文件中获取类名?例如,MembershipProvider
类从其他程序集中加载得很好。
我怎么能这样做。或者如果我不能,为什么我不能?