저는 애플 리케이션에 상당히 핵심적인 몇 가지 확장 메소드를 가지고 있습니다. 난 그들을 사용하여 내 OData 서비스에 대한 모든 호출을 중앙 예외 처리기를 통해 라우팅합니다. 그것은 다음과 같습니다Unity Resolve를 필요로하는 확장 메소드
var results = Entites.Customers.Where(x=>x.IsActive).Invoke();
Invoke()
내 확장 방법이며, 모든 위대한 작품!
하지만 예외가 발생하면 기록하고 싶습니다.
문제의 I의 발견은 나의 ILogger
static
클래스 내에 해결 될 수없는 (이 확장 메서드를하는 이 정적 필요가있는 클래스.)
화합 관리 인터페이스를 해결하기 위해 어떤 방법이 있나요 static
클래스 안에 있습니까? 또는 Dependency Injection 패턴이이 C# 기능에 대처할 수 없습니까?
@IlyaIvanov 또는 단지'경우 (X => x.IsActive)' – Servy
간단한 해결책이있다 : 확장 방법을 사용하지 마십시오가. 일단 'Invoke'메소드가 자체 의존성을 필요로하면 자체 서비스를 얻고 다른 모든 서비스를 주입하는 것처럼 주입해야합니다. 그 편리한 확장 메소드 구문을 더 이상 사용할 수 없습니다. 그것으로 살아라. – Steven