Asp.net mvc 使用Asp.net MVC在mef插件中公开WCF

Asp.net mvc 使用Asp.net MVC在mef插件中公开WCF,asp.net-mvc,mef,Asp.net Mvc,Mef,我想实施下一个场景: ASP.NETMVC以与前面描述的类似的方式使用MEF 我需要允许的事情之一是,MEF插件包含WCF服务(或asmx服务-backwords兼容性) 我可以使用什么方法(如果有的话)让MVC网站抓住Web服务并将其公开:。我认为您可以通过以下几个步骤实现这一点: 1) 创建带有协定(接口)的公共类库 2) 为WCF服务实现创建另一个类库,并使用MEF的导出属性标记WCF服务类 [Export(typeof(ISimpleService))] public class Sim

我想实施下一个场景:

ASP.NETMVC以与前面描述的类似的方式使用MEF

我需要允许的事情之一是,MEF插件包含WCF服务(或asmx服务-backwords兼容性)


我可以使用什么方法(如果有的话)让MVC网站抓住Web服务并将其公开:。

我认为您可以通过以下几个步骤实现这一点:

1) 创建带有协定(接口)的公共类库

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, ...);

希望这能有所帮助。

我认为您可以通过以下几个步骤实现这一点:

1) 创建带有协定(接口)的公共类库

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, ...);
希望这有帮助