2009-08-07 11 views

Odpowiedz

10

Wierzę, że to, czego szukasz, to MetadataTypeAttribute. Nie jest to coś charakterystycznego dla MVC, ale jest częścią przestrzeni nazw DataAnnotations wprowadzonej w 3.5. Pozwala dekorować członków klasy cząstkowej poza klasą.

Na przykład, jeśli masz wygenerowany typ częściowej klasy o nazwie Klient i chcesz dodać do niego atrybuty, możesz utworzyć nową część w tej samej przestrzeni nazw i oznaczyć ją MetadataType. Następnie utwórz klasę metadanych z pasującymi atrybutami i udekoruj je.

/* Generated class */ 
public partial class Customer 
{ 
    public string Name { get; set; } 
} 


/* MetadataType decorated class */ 
[MetadataType(CustomerMetadata)] 
public partial class Customer 
{ /* ... */ } 


/* Metadata type */ 
public class CustomerMetadata 
{ 
    [Required(ErrorMessage = "Name is required")] 
    public string Name { get; set; } 
} 
+0

Dzięki tony! Dokładnie tego potrzebowałem. :) –

+0

Po co seperować zajęcia? – UpTheCreek

+1

To nie jest tak "punkt", ponieważ jest to brzydki sposób obejścia automatycznego generowania klas z EF lub LINQ2SQL. Ponieważ generowane są pliki klas, nie ma możliwości zastosowania atrybutów do właściwości, dlatego powstała zhakowana alternatywa. –