2012-05-23 13 views
5

Quiero generar alias para las propiedades en el código generado. Todo lo que podía hacer hasta ahora era:Cómo definir un alias para una propiedad

partial class Purchase 
{ 
    public User Customer 
    { 
     get 
     { 
      return this.User; 
     } 

     set 
     { 
      this.User = value; 
     } 
    } 
} 

Me pregunto si hay alguna otra manera de definir un alias en C#. La clase Purchase fue generada por Linq-to-SQL

+0

¿No le permitirá Linq2Sql cambiar los nombres asignados? –

+0

@HenkHolterman Si hago eso, tendré que repetir el proceso cada vez que regenere el archivo DBML. –

+0

OK, si eso es un problema. Pero su código publicado _es_ haciendo un alias. Entonces, ¿cuál es la pregunta real? ¿Hay algo malo con eso? –

Respuesta

2

No, no es posible hacerlo en C#. El nombre de la propiedad es un identificador único que puede definir para él.

No sabe si esto es lo que está buscando o no:

pero se puede definir (por ejemplo) un Dictionary<string,object> donde Key es una propertyname y value es un valor de la propiedad. De esta forma, puede definir la propiedad dinámica en efectivo, con el cambio de nombres de propiedades y valores en tiempo de ejecución.

o puede utilizar un ExpandoObject, si utiliza C# 4.0

+5

En el código publicado, el Cliente _es_ un alias para el Usuario. El OP pregunta por otras formas de hacerlo. –

1

En el caso que desee un nombre diferente de la propiedad para enviar información a JSON usando newtonSoft, puede utilizar

[JsonProperty("alias_name")] 
public type YourProperty {get;set;} 

Esto puede ayudar si no desea que su objeto siga la convención C# y coincida con el objeto JSON que se recibirá o envíe

Cuestiones relacionadas