일부 제품에 대한 새로운 일반 인증 프레임 워크를 설계하는 동안 좋은 해결책을 찾을 수없는 구조적인 문제가 발생했습니다.ASP.NET 모듈 종속성 주입
나는 이것을 쉽게 설명하기 위해 문제를 단순화하려고 노력했다. 현재 인증 된 사용자를 저장하기위한 책임인가
관리자 :
라이브러리는 두 개의 클래스가 있습니다.
모듈 모듈은 보안 정책에 따라 각 요청의 유효성을 검사해야합니다. 모듈은 사용자에게 현재 인증되었는지 여부를 관리자에게 확인해야합니다.
이제 관리자는 관리자가 저장소에서 사용자를로드 할 수있는 인터페이스 구현을 제공받습니다. 특정 구현은이 라이브러리에 포함되어 있지 않습니다. 이 때문에 라이브러리 내의 저장소 인스턴스를 직접 인스턴스화 할 수 없습니다.
모듈 생성자에 대한 속성을 수정하거나 인수를 제공 할 방법이 없습니다. 그래서 제 질문은 이것입니다, 어떻게 모듈을 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.
}
}
무엇을해야한다고 생각 당신은 당신이 뭘하려는 건지 보여주기 위해 일부 의사 코드 구현을 게시 할 수 있습니까? –