这让我疯了,也许我错过了一些东西,但我正在尝试将.NET 3.5应用程序升级到.NET 4.0,而我遇到的唯一问题就是这个类:
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”不存在(它是红色)。进入对象浏览器,在System.ServiceModel.Activation下,它确实没有显示ServiceHostFactory。
根据这个:
http://msdn.microsoft.com/en-us/library/system.servicemodel.activation.servicehostfactory.aspx
应该在4.0中支持。我在这里缺少什么?
答案 0 :(得分:35)
System.ServiceModel.dll在System.ServiceModel.Activation命名空间中有一些项目。
但是,ServiceHostFactory位于System.ServiceModel.Activation.dll本身。因此,您需要添加对该程序集的引用。请记住,默认情况下,VS2010似乎想要使用.NET 4 Client Profile,因此在添加对System.ServiceModel.Activation的引用之前,您需要将其更改为常规.NET 4配置文件。