私たちの製品のいくつかの新しい汎用認証フレームワークを設計する際に、私は良い解決策を見つけることができないような建築上の問題に遭遇しました。ASP.NETモジュール依存性注入
私は問題を簡単に説明するために問題を簡素化しようとしました。
ライブラリーは、2つのクラスがあります。
マネージャーは、現在認証されたユーザーを格納するための責任があります。
モジュールモジュールはセキュリティポリシーに従って各要求を検証する責任があります。モジュールは、ユーザーが現在認証されているかどうかを決定するようにマネージャに依頼する必要があります。
これで、マネージャには、マネージャがリポジトリからユーザをロードできるようにするインターフェイスの実装が提供されました。特定の実装はこのライブラリに含まれていません。このため、私はライブラリ内のリポジトリのインスタンスを直接インスタンス化することはできません。
モジュールのコンストラクタのプロパティを変更したり、引数を指定したりする方法がありません。だから私の質問はこれです、どのようにモジュールにManagerのインスタンスへの参照を与えることができますか?古典的なASP.NETで
namespace Demo
{
public interface IRepository
{
object GetUser(int id);
}
public class Manager
{
public IRepository Repository { get; private set; }
public Manager(IRepository repository)
{
this.Repository = repository;
}
}
public class Module : IHttpModule
{
// How can i access an instance of the manager class here
// when I am unable to instantiate an instance of
// of an implementation of the IRepository interface.
}
}
必要なものをやるべきだと思うあなたが何をしようとして証明するためにいくつかの擬似コードの実装を投稿することができますか? –