2010-08-31 51 views
21

这是驱使我坚果,也许我失去了一些东西,但我想升级.NET 3.5应用程序到.NET 4.0,我遇到的唯一问题是这个类:.NET 4.0中缺少ServiceHostFactory?

3.5代码:

public class ServiceHostFactory : System.ServiceModel.Activation.ServiceHostFactory 
    { 
     protected override System.ServiceModel.ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses) { 
      return new ServiceHost(serviceType, baseAddresses); 
     } 
    } 

当我升级到4.0时,看起来“ServiceHostFactory”不存在(它是红色的)。进入Object Browser,在System.ServiceModel.Activation下,它确实没有显示ServiceHostFactory。

根据此:

http://msdn.microsoft.com/en-us/library/system.servicemodel.activation.servicehostfactory.aspx

应该在4.0的支持。我在这里错过了什么?

回答

33

System.ServiceModel.dll在System.ServiceModel.Activation命名空间中有一些项目。

但是,ServiceHostFactory位于System.ServiceModel.Activation.dll本身中。所以你需要添加对该程序集的引用。请记住,默认情况下,VS2010似乎要使用.NET 4客户端配置文件,因此您需要将其更改为常规.NET 4配置文件,然后才能将引用添加到System.ServiceModel.Activation。

+0

工作完美!很早就发现了.NET 4 Client Profile的事情,这又浪费了半个小时;) – 2010-08-31 14:37:29

+0

非常感谢,Brad! – 2015-09-09 09:40:14