.NET 2.0 웹 서비스에 대한 서비스 참조가 있습니다. 저장소에이 서비스에 대한 참조가 있으며 Ninject로 이동하려고합니다. 지금까지 DI를 사용해 왔지만 이와 같은 웹 서비스로 시도하지는 않았습니다.모든 통화에서 authheader가 필요한 웹 서비스를 어떻게 분리합니까?
그래서 저장소 생성자는 서비스의 클라이언트 프록시와 프록시의 모든 메서드의 첫 번째 매개 변수 인 AuthHeader 개체라는 두 개의 개체를 만듭니다.
AuthHeader는 마찰을 일으키는 곳입니다. 구체적인 유형은 프록시의 모든 호출에서 첫 번째 매개 변수로 필요하기 때문에 필자는 저장소의 AuthHeader에 의존해야한다고 생각합니다. 사실입니까?
내 reference.cs에서 AuthHeader 용 인터페이스를 추출했습니다. MakeSomeCall이 기대되기 때문에 때문에 ...
[Inject]
public PackageRepository(IWebService service, IAuthHeader authHeader)
{
_service = service;
_authHeader = authHeader;
}
...하지만 나는
_service.MakeSomeCall(_authheader, "some value").
처럼 내 서비스 프록시로 전화를 걸 수없는 경우 : 나는 내 저장소 생성자에 대해 다음으로 이동하고 싶었다 IAuthHeader가 아닌 AuthHeader입니다.
여기 둥근 구멍을 사각형으로 고정합니까? 웹 서비스 "awesomeness"때문에 자연스럽게 맞지 않는 부분일까요? 접근 방식이 빠졌습니까?
감사합니다. Aaronault. 이것은 분명히 나를 올바른 방향으로 움직일 것입니다. 내가 종속성을 잃어 버리려고하기 때문에 서비스 프록시를 포장하고 싶은 이유가 있습니다. AuthHeader가 방해가되지 않으면 랩/추출하지 않고도 거기에 완전히 도달 할 수 있습니다. 나는 모든 것을위한 인터페이스가 필요 없다는 것에 대해 당신이 말하는 것을 얻습니다. 나는 * IAuthHeader 인터페이스를 원한다. 난 그냥 서비스 프록시에 의존하지 않고 짧은 내 저장소를 구축하려고 해요. 나는 다른 접근법을 시도 할 것입니다. 도움을 주셔서 감사합니다. 건배. – MisterJames