Как я могу использовать autofac для разрешения службы данных WCF? - PullRequest
1 голос
/ 23 февраля 2011

Я создаю службу данных WCF с помощью Инструментария служб данных WCF и его технического документа Создание служб OData поверх существующих API .Служба добавляется на существующий веб-сайт MVC 3, который уже настроен на использование AutofacDependencyResolver.Код, предоставленный в техническом документе для предоставления сервиса:

protected void Application_Start() 
{ 
  var factory = new DataServiceHostFactory();
  var serviceRoute = new ServiceRoute("odata", factory, typeof(CrmODataService));
  serviceRoute.Defaults = new RouteValueDictionary { { "serviceType", "odata" } };
  serviceRoute.Constraints = new RouteValueDictionary { { "serviceType", "odata" } };
  RouteTable.Routes.Add("odata", serviceRoute);
  ...
}

Есть ли простой способ изменить это, чтобы разрешить сервис через Autofac, или мне нужно реализовать мой собственный ServiceHostFactory?

1 Ответ

2 голосов
/ 23 февраля 2011

Кажется, я понял это:

protected void Application_Start() 
{
  var factory = new AutofacWebServiceHostFactory();
  var serviceRoute = new ServiceRoute("odata", factory, typeof(CrmODataService));
  serviceRoute.Defaults = new RouteValueDictionary { { "serviceType", "odata" } };
  serviceRoute.Constraints = new RouteValueDictionary { { "serviceType", "odata" } };
  RouteTable.Routes.Add("odata", serviceRoute);
  ...
}

И в других местах не забудьте установить

AutofacWebServiceHostFactory.Container = container;
...