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アセンブリにあるとしWebます。私が与えたコードセグメントはアセンブリにありLibます。クラスMembershipRepositoryはアセンブリにありRepoます。
Webとの両方Libを参照していますRepo。
Lib他のアセンブリへの参照はありません(dllとして参照される可能性があります)。
Repoへの参照がある場合とない場合がありますLib。
私はmembershipRepositoryTypeになりますnull。おそらく、であるアセンブリを指定する必要があることを理解していますMembershipRepository。1つの方法は、構成でアセンブリ名を指定することです(このように)。しかし、私は他のいくつかの方法があるべきだと思います。それ以外の場合、構成ファイルからクラス名のみを取得して他のクラスをロードする方法は?たとえば、MembershipProviderクラスは他のアセンブリから問題なくロードされます。
どうすれば同じことができますか。または私ができない場合、なぜ私はできないのですか?