Понимание библиотеки классов WcfIISHost в проекте - PullRequest
0 голосов
/ 26 сентября 2019

Я изучаю веб-проект и обнаружил библиотеку классов.Его имя - «UnitName.SampleProject.WcfIISHost», и оно имеет только два файла, один из которых «CategoryService.svc» и «NinjectFileLessServiceHostFactory.cs».И что странно, «CategoryService.svc» имеет только одну строку, как таковую:

<%@ ServiceHost Language="C#" Debug="true" Service="UnitName.SampleProject.BusinessLayer.Concrete.ProductManagement.CategoryService" Factory="Ninject.Extensions.Wcf.NinjectServiceHostFactory" %>

и содержимое «NinjectFileLessServiceHostFactory.cs».это:

public class NinjectFileLessServiceHostFactory : NinjectServiceHostFactory
{
  public NinjectFileLessServiceHostFactory()
  {
  var kernel = new StandardKernel(new BusinessModule());
  kernel.Bind<ServiceHost>().To<NinjectServiceHost>();
  SetKernel(kernel);
 }
}

Есть библиотека Wcf и хост-библиотеки Wcf Console, и я их понимаю.Какое может быть назначение этой библиотеки?

Заранее спасибо.

1 Ответ

1 голос
/ 27 сентября 2019

Короче говоря, из-за изменений в среде размещения, WCF, размещенный в IIS, отличается от WCF, размещенного на консоли, в консоли мы можем добавить дополнительную логику, добавить дополнительные службы и поведение конечных точек до того, как служба будет запущена через событие ServiceHost,или инициализировать базу данных и т. д.
Поскольку IIS не создает экземпляр узла службы, все события, связанные с жизненным циклом службы, реализуются через свойство Factory.
Вот подробное объяснение.
https://docs.microsoft.com/en-us/dotnet/framework/wcf/extending/extending-hosting-using-servicehostfactory
Расширение NinjectServiceHostFactory добавляет поддержку внедрения Dedenpency для службы и поведения WCF.
https://github.com/ninject/Ninject.Extensions.Wcf
Не стесняйтесь, дайте мне знать, если есть что-то, с чем я могу помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...