簡體   English   中英

自托管WCF:自動創建服務主機並使用Autofac啟用依賴項注入

[英]Self-hosted WCF: automatically create service hosts and enable dependency injection with Autofac

我正在使用帶有許多自托管WCF服務的Windows服務。 我正在將Autofac用於DI / IoC。

WCF服務和端點是在app.config中設置的,並且通過枚舉配置的服務 ,Windows服務能夠為每個配置的WCF服務自動創建並打開ServiceHost

為了啟用依賴項注入,我為ServiceHost每個新實例添加了對AddDependencyInjectionBehaviordocs )方法的調用,但是該方法專門要求一個contractType ,此時我僅具有服務實現類型。

可以通過使用反射查找實現的接口來檢索合同類型,但是由於這是我與Autofac一起合作的第一個項目,因此我想確保自己不會犯錯。

是否有一個優雅的解決方案,是否有任何不當做法,還是在這種情況下反思是唯一的方法?

任何輸入表示贊賞。

您可以嘗試枚舉ServiceHost的所有端點,然后從中提取ContractType。

ServiceHost host = ...
foreach (ServiceEndpoint endpoint in host.Description.Endpoints)
{
  var contract = endpoint.Contract;
  Type t = contract.ContractType;

  host.AddDependencyInjectionBehavior(t, container);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM