2009-08-07 9 views

risposta

10

Credo che quello che stai cercando sia MetadataTypeAttribute. Questo non è qualcosa che è specifico per MVC ma fa parte dello spazio dei nomi DataAnnotations introdotto in 3.5. Permette di decorare membri di una classe parziale esterna alla classe stessa.

Ad esempio, se si dispone di un tipo di classe parziale generato denominato Cliente e si desidera aggiungere attributi ad esso, è possibile creare un nuovo parziale nello stesso spazio dei nomi e assegnarlo a MetadataType. Quindi creare la classe Metadata con gli attributi corrispondenti e decorarli.

/* 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

Grazie mille! Questo è esattamente ciò di cui avevo bisogno. :) –

+0

Qual è il punto in cui si separano le classi? – UpTheCreek

+1

Non è tanto un "punto" quanto una brutta soluzione per gestire classi generate automaticamente da EF o LINQ2SQL. Poiché i file di classe vengono generati, non è possibile applicare attributi alle proprietà, pertanto è stata creata un'alternativa hacky. –