2011-01-14 7 views
0

Ich habe einen Mitarbeiter Klasse:Standardattributliste sollte meine Klassendefinition kommt in C# .net

public class Employee 
{ 

     public string Name { get; set; } 
     public Int32 Salary { get; set; } 
     public DateTime DateOfBirth { get; set; } 
} 

und ich ein benutzerdefiniertes Attribut erstellt hat CustomeAttribute als

public class CustomAttributes : Attribute 
{ 

     public int Sequence {set;get;} 
     public int Length { set; get; } 

} 

ich verwende CustomAttribute als Attribut in Employee als

public class Employee 
{ 

    public string Name { get; set; } 
    public Int32 Salary { get; set; } 
    public DateTime DateOfBirth { get; set; } 
} 

public class Employee 
{ 

    [CustomAttributes(Sequence=1,Length=10)] 
    public string Name { get; set; } 
    [CustomAttributes(Sequence = 2, Length= 6)] 
    public Int32 Salary { get; set; } 
    [CustomAttributes(Sequence =3, Length = 8)] 
    public DateTime DateOfBirth { get; set; } 
} 

ich möchte Attri validieren bute collection sollte für jede Property-Definition vorhanden sein. Wenn ich hinzufügen neue Eigenschaft Age'Employee` als

public class Employee 
{ 
    [CustomAttributes(Sequence=1,Length=10)] 
    public string Name { get; set; } 
    [CustomAttributes(Sequence = 2, Length= 6)] 
    public Int32 Salary { get; set; } 
    [CustomAttributes(Sequence =3, Length = 8)] 
    public DateTime DateOfBirth { get; set; } 

    public int Age {get;set;} 
} 

Ich sollte Zeitfehler erhalten kompilieren als Attribute fehlen. Welche wird sicherstellen, Attribute Werte zu jedem der Eigenschaft einer dieser Klasse sowie eine Klasse, die von der gleichen Baugruppe ist.

Ich sollte Kompilierzeitfehler für eine Eigenschaft ohne Attributwerte erhalten.

Antwort

0

Es gibt keine Möglichkeit, einen Kompilierungsfehler zu generieren. Sie könnten jedoch etwas mit Reflektion tun, entweder in Ihrem Komponententests oder der #debug Build - einfach über die Eigenschaften iterieren, überprüfen Attribute.IsDefined(property, typeof(CustomAttributes))

+0

Ok danke ... das heißt, wir können es nicht zur Entwurfszeit überprüfen. – pramodchoudhari