servicemodel explained example app wcf web-services generics

explained - ¿Cómo puedo controlar el nombre de los tipos de devolución de WCF genéricos?



wcf soap service web config (3)

Por favor intente esto:

[OperationContract] [return: MessageParameter(Name="YOURNAME")] Response<List<Customer>> GetCustomers();

Tengo un método de servicio web WCF cuyo prototipo es:

[OperationContract] Response<List<Customer>> GetCustomers();

Cuando agrego la referencia de servicio a un cliente, Visual Studio (2005) crea un tipo llamado "ResponseOfArrayOfCustomerrleXg3IC" que es un contenedor para "Response <List <Customer >>". ¿Hay alguna forma de que pueda controlar el nombre del contenedor? ResponseOfArrayOfCustomerrleXg3IC no suena muy atractivo ...


Sí. OperationContractAttribute toma un parámetro llamado Name. Podrías especificarlo así:

[OperationContract(Name = "NameGoesHere")] Response<List<Customer>> GetCustomers();


Puede definir su propio nombre en el atributo DataContract como este:

[DataContract(Name = "ResponseOf{0}")] public class Response<T>

Tenga en cuenta que en su ejemplo, el {0} se reemplazará y su tipo de referencia de proxy será ResponseOfArrayOfCustomer .

Más información aquí: WCF: Serialización y genéricos