В нашем проекте ASP.NET у нас есть интерфейс службы диспетчера сеансов, который мы используем, чтобы узнать информацию о текущем пользователе. Например:
var actorId = _sessionManager.CurrentActivePerson.PersonId;
Этот диспетчер сеансов предоставляется классам посредством внедрения зависимостей на основе конструктора.
Теперь у нас есть служба WCF, которую мы хотели бы создать с различными привязками DI в зависимости от ситуации:
- Если потребитель предоставил имя пользователя для сеанса, мы хотели бы использовать менеджер сеансов, который считает этого пользователя текущим человеком.
- В противном случае мы хотим как-то потребовать предоставления идентификатора домена, использовать менеджер сеансов, который привязан к системному сотруднику для этого домена.
Чтобы это работало правильно, нам нужно разрешить потребителю указывать идентификатор домена в качестве аргумента, хотя он не указан в качестве аргумента самой службы. Затем нам нужно иметь доступ к этому аргументу из метода привязки DI, пока HostFactory создает экземпляр службы.
У кого-нибудь есть предложения по поводу того, как мы можем это сделать?
Примечания:
- Я уже знаю, как вообще создавать зависимые привязки: вопрос в том, чтобы передать этот дополнительный параметр фабрике сервиса.
- Служба WCF предоставляется в качестве конечной точки SOAP и использует защиту на основе сертификатов.