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
クラスは他のアセンブリから問題なくロードされます。
どうすれば同じことができますか。または私ができない場合、なぜ私はできないのですか?