Me imagino que todo el mundo ha sido testigo de un código como:El uso de atributos para reducir en la enumeración de mapeo de enumeración y la enumeración/const a declaraciones provistas de interruptores de acción
public void Server2ClientEnumConvert(ServerEnum server)
{
switch(server)
{
case ServerEnum.One:
return ClientEnum.ABC
//And so on.
En lugar de esta maldad que podríamos hacer algo como:
public enum ServerEnum
{
[Enum2Enum(ClientEnum.ABC)]
One,
}
Ahora podemos usar la reflexión para extraer a través de ServerEnum y obtener las asignaciones de conversión de la declaración enum.
El problema que estoy teniendo aquí está en la declaración del atributo Enum2Enum.
Esto funciona pero reemplazar el objeto o con Enum e no funciona. No quiero poder pasar objetos al constructor, solo otras enumeraciones.
public class EnumToEnumAttribute : Attribute
{
public EnumToEnumAttribute(object o){}
}
Esto no se puede compilar.
public class EnumToEnumAttribute : Attribute
{
public EnumToEnumAttribute(Enum e){}
}
¿Hay algún motivo para el error de compilación? ¿Cómo podría yo pasar la información necesaria para asignar además:
EnumtoEnumAttribute(Type dest, string enumString)
esto parece demasiado prolijo, pero si es la única manera entonces creo que lo voy a utilizar.
¿Qué error de compilación está obteniendo? ¿Dónde? –