2010-08-31 14 views
21

Esto me está volviendo loco, tal vez me falta algo, pero estoy tratando de actualizar una aplicación .NET 3.5 a .NET 4.0 y el único problema que me encuentro es esta clase:Falta ServiceHostFactory en .NET 4.0?

3.5 Código:

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

Cuando actualizo a 4.0, parece que "ServiceHostFactory" no existe (es rojo). Al entrar en el Examinador de objetos, en System.ServiceModel.Activation, de hecho no muestra ServiceHostFactory.

De acuerdo con esto:

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

deben estar apoyadas en 4.0. ¿Que me estoy perdiendo aqui?

Respuesta

33

System.ServiceModel.dll tiene algunos elementos en el espacio de nombres System.ServiceModel.Activation.

Sin embargo, ServiceHostFactory se encuentra en System.ServiceModel.Activation.dll. Por lo tanto, debe agregar una referencia a ese ensamblaje. Tenga en cuenta que, de forma predeterminada, VS2010 parece querer usar .NET 4 Client Profile, por lo que deberá cambiarlo al perfil .NET 4 normal antes de poder agregar la referencia a System.ServiceModel.Activation.

+0

¡Funcionó a la perfección! Encontré lo del .NET 4 Client Profile desde el principio, eso fue otra media hora perdida;) –

+0

¡Muchas gracias, Brad! –