Acabo de empezar a estudiar WCF porque lo necesito para una tarea escolar. Pero tengo un problema cuando intento enviar un objeto con algunos atributos personalizados. El objeto es:Enviar objetos con atributos personalizados a través de un servicio wcf
[DataContract]
public class Person
{
[DataMember]
[Searchable("ID")]
public virtual String ID
{
get;
set;
}
[DataMember]
[Searchable("LastName")]
public virtual String LastName
{
get;
set;
}
[DataMember]
[Searchable("FirstName")]
public virtual String FirstName
{
get;
set;
}
}
El atributo personalizado es:
[DataContract]
[AttributeUsage(AttributeTargets.Property)]
public class Searchable:Attribute
{
public Searchable(String PropertyName)
{
this.PropertyName = PropertyName;
}
[DataMember]
public virtual String PropertyName
{
get;
set;
}
}
utilizo svcutil para generar el archivo de configuración y el cliente. La comunicación entre el cliente y el servicio está funcionando bien. Pero cuando recibo un objeto del tipo Persona y trato de buscar el atributo del tipo Buscable no puedo encontrar ninguno.
¿Esto es posible? En caso afirmativo, ¿podría dar alguna pista sobre cómo lograr este tipo de comportamiento?
Gracias. Denis.
Gracias Marc por la respuesta rápida. De alguna manera pensé eso después de que ya publiqué la pregunta. Tengo el control tanto del cliente como del servidor; sin embargo, no creo que crear esta referencia a una biblioteca común sea bueno a largo plazo. ¿Alguna idea sobre cómo podría hacer que el atributo sea accesible por otros medios? –
@Denis Rosca: no hay otro medio, lo siento. Si usa la forma estándar de agregar una referencia WCF, como dije, ** solo ** obtiene lo que se serializa en el mensaje XML (y se deserializa de nuevo) y eso no incluye los atributos personalizados de .NET, lo siento. –