У меня есть сервисная библиотека wcf, размещенная в службе Windows. Мне нужно перехватить вызовы на Способы обслуживания. В этом случае предполагается зарегистрировать WCF в контейнер Unity, как можно видеть в этой ссылкеРегистрация службы WCF в контейнере Unity
http://weblogs.asp.net/fabio/archive/2009/03/24/inversion-of-control-with-wcf-and-unity.aspx
Я пытаюсь реализовать подобный подход, Unity.WCF сборки из Codeplex.I не мог понять, куда поместите мою конфигурацию контейнера или загрузчик в библиотеку сервиса wcf (или службу Windows). Не существует твердого образца (vs solution).
My Windows Service Хост
частный UnityServiceHost _serviceHost = NULL; приватный readonly UnityContainer _container;
public Service() {
InitializeComponent();
_container = new UnityContainer();
_container.AddNewExtension<Interception>();
_container.RegisterType<ISecurityRepository, SecurityRepository>();
_container.Configure<Interception>().SetDefaultInterceptorFor<ISecurityRepository>(new TransparentProxyInterceptor());
}
protected override void OnStart(string[] args) {
//SecurityService
if (_serviceHost != null) {
_serviceHost.Close();
} else {
_serviceHost = new UnityServiceHost(_container, typeof(SecurityRepository));
_serviceHost.Open();
}
}
protected override void OnStop() {
//SecurityService
if (_serviceHost != null) {
_serviceHost.Close();
_serviceHost = null;
}
}
Моя_служба Договор
[ServiceContract (SessionMode = SessionMode.Required)] общедоступный интерфейс ISecurityRepository {
[OperationContract(IsInitiating = true)]
IList<vNavigationTree> GetNavigationTree(string ticket);
[OperationContract(IsInitiating = true)]
string GetSessionGuid(string userName, string IP, string machineName);
}
В этом случае, кажется, что перехватчик не work.Briefly что Мне нужен пример проекта, в котором служба WCF зарегистрирована в контейнере DI, и методы обслуживания перехватываются.