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