在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类从其他程序集中加载得很好。
我怎么能这样做。或者如果我不能,为什么我不能?