2009-06-30 7 views
0

Gibt es eine Möglichkeit in .NET, eine Klasseneigenschaft einen zweiten Namen oder einen Aliasnamen zu haben. Ich möchte, dass der Alias ​​in Visual Studio Intellisense angezeigt wird. Der Grund ist für mich, zu wissen, welche Eigenschaft zu welcher Spalte in einer Datenbank gehört, und wenn ich den Spaltennamen irgendwo mit der entsprechenden Eigenschaft einfüge, kann ich leicht wissen, wie die Mappings funktionieren.Kann eine Eigenschaft in einer Klasse einen zweiten Namen oder einen Alias ​​in .NET haben?

+0

zu erreichen Wenn Sie die Methode verwenden, die AdamRalph gebucht werden Sie eine Intellisense Beschreibung unter der Eigenschaft erhalten oder eine Funktion aufrufen, die Ihnen eingegebene Text enthalten in das

Tag, auch wenn Sie die Eigenschaft oder Funktion mit der Maus übergeben. – Doliveras

Antwort

8

Sie könnten die Spaltennamen auf dem Grundstück in einem XML-Kommentar setzen, zum Beispiel

/// <summary> 
/// Maps to column 'foo' 
/// </summary> 
public int Foo { get; set; } 

Der Inhalt des XML-Kommentars wird im IntelliSense-Tooltip für die Foo-Eigenschaft angezeigt.

5

Ich glaube nicht, dass es sowieso einen Alias ​​gibt, aber Sie könnten leicht eine andere Eigenschaft mit einem anderen Namen erstellen, der nur auf die Eigenschaft zugreift, die Sie erreichen möchten.

class MyClass 
{ 
    private int myVal; 

    public int MyProperty 
    { 
    get { return this.myVal; } 
    set { this.myVal = value; } 
    } 

    public int MyDbProperty 
    { 
    get { return this.MyProperty; } 
    set { this.MyProperty = value; } 
    } 
} 
+0

Dies hilft einem Entwickler nicht zu verstehen, welche Eigenschaft über intellisense welcher Spalte in der Datenbank zugeordnet ist. –

1

Sie könnten einfach eine weitere Eigenschaft hinzufügen, die dem Objekt zugeordnet wird, für das Sie einen "Alias" haben möchten.

public String InnerProp { get; set; } 
public String AliasProp 
{ 
    get { return this.InnerProp; } 
    set { this.InnerProp = value; } 
} 
1

Es gibt keine Möglichkeit, dies auf Metadaten- oder sogar Sprachniveau zu tun. Allerdings können Sie einfache Eigenschaften verwenden, die ihre Anfragen weiterleiten das gleiche Ergebnis

public class Student { 
    private string _name; 
    public string ColumnName { get { return _name; } set { _name = value; } } 
    public string Name { get { return ColumnName; } set { ColumnName = value; }} 
} 
Verwandte Themen