Я разрабатываю приложение, которое предоставляет службу WCF, используя шаблон сообщения / ответа для методов службы. Приложение использует Unity 2.0 для внедрения зависимостей и блок приложения проверки из MS Patterns & Practices. Я уже подключил Unity к WCF с помощью пользовательского модуля HttpModule, который я недавно обнаружил на нескольких веб-сайтах, и все отлично работает.
В моем интерфейсе сервиса у меня есть такой метод:
DoSomethingResponse DoSomething (запрос DoSomethingRequest)
Я могу легко прикрепить атрибуты VAB к контракту на обслуживание, чтобы убедиться, что «запрос» никогда не является нулевым, но я также хочу проверить содержимое объекта запроса.
Для этого я внедряю валидатор в конструктор DoSomethingRequest и включаю свойство IsValid с внутренней областью действия, которое обрабатывает взаимодействие с валидатором VAB. К сожалению, этот конструктор не вызывается, потому что WCF десериализует объект, а конструкторы не используются.
Если не использовать преимущества объекта запроса в виде простого DTO по сравнению с некоторой бизнес-логикой на стороне сервера, есть ли способ аккуратно внедрить зависимости в объект, передаваемый в службу WCF в качестве аргумента?