2
我想實現的下一個場景:描述by hammett以類似的方式WCF暴露在MEF插件與Asp.net MVC
ASP.Net MVC與MEF工作。
我需要允許的一件事是MEF插件包含WCF服務(或asmx服務 - backwords兼容性)。
我可以使用什麼方法(如果有的話)使MVC網站抓取web服務並將其公開:http://websitename/MefPlugin/Service1.mvc。
我想實現的下一個場景:描述by hammett以類似的方式WCF暴露在MEF插件與Asp.net MVC
ASP.Net MVC與MEF工作。
我需要允許的一件事是MEF插件包含WCF服務(或asmx服務 - backwords兼容性)。
我可以使用什麼方法(如果有的話)使MVC網站抓取web服務並將其公開:http://websitename/MefPlugin/Service1.mvc。
我想你可以做到這一點,有以下幾個步驟:
1)建立一個共同的類庫與合同(接口)
[ServiceContract]
public interface ISimpleService
{
}
2)WCF服務創建另一個類庫實現,並用MEF的導出屬性標記你的WCF服務類。
[Export(typeof(ISimpleService))]
public class SimpleService: ISimpleService
{
}
3)然後,在主機應用程序(ASP.NET MVC在這種情況下)創建基於組件目錄例如是MEF組合物的容器。
protected void Application_Start()
{
var catalog = new AssemblyCatalog(...);
var container = new CompositionContainer(catalog);
container.ComposeParts(this);
}
4)然後,你將能夠與MEF
[Import]
public ISimpleService SimpleService { get; set; }
5)然後,您可以創建WCF服務主機爲服務實現
var serviceHost = new ServiceHost(SimpleService, ...);
希望導入您的服務實現這有助於。