2010-08-31 41 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