У меня есть сервисная ссылка на веб-сервис .NET 2.0. У меня есть ссылка на этот сервис в моем хранилище, и я хочу перейти на Ninject. Я использую DI уже некоторое время, но не пробовал его с таким веб-сервисом.
Итак, в моем коде конструктор хранилища создает два объекта: клиентский прокси для службы и объект AuthHeader, который является первым параметром каждого метода в прокси.
AuthHeader - это место, где у меня трения. Поскольку конкретный тип требуется в качестве первого параметра при каждом вызове прокси-сервера, я считаю, что мне нужно взять зависимость от AuthHeader в моем репозитории. Это правда?
Я извлек интерфейс для AuthHeader из моего reference.cs. Я хотел перейти к следующему для моего конструктора хранилища:
[Inject]
public PackageRepository(IWebService service, IAuthHeader authHeader)
{
_service = service;
_authHeader = authHeader;
}
... но тогда я не могу звонить своему прокси-серверу, например
_service.MakeSomeCall(_authheader, "some value").
... потому что MakeSomeCall ожидает AuthHeader, а не IAuthHeader.
Я что, воткнул квадратную круглую дыру? Является ли это просто областью, в которой нет естественного соответствия (из-за «удивительности» веб-службы)? Я пропускаю подход?