Ho una classe generata automaticamente da importare un servizio web che contiene qualcosa di simile (abbreviato):Come posso utilizzare gli attributi su una proprietà definita nell'altra metà di una classe parziale?
[System.Runtime.Serialization.DataMemberAttribute()]
public System.DateTime StartDate
{
get
{
return this.StartDateField;
}
set { /* implementation prop changed */ }
}
E voglio aggiungere un attributo formato MVC a questo utente. Quindi, in un altro file contenente lo stesso partial class
definizione, mi piacerebbe fare qualcosa di simile alla seguente (che è illegale):
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
public DateTime StartDate;
Metodo parziale è di alcuna utilità qui perché i metodi parziali devono essere private, hanno di ritorno void tipo, deve essere un metodo ecc. ecc.
Come posso decorare questo membro?
è il secondo frammento di codice doveva essere la definizione del 'StartDateField' utilizzato dalla proprietà' StartDate' nel tuo primo frammento? –
Invece di usare classi parziali per decorare il codice generato, dovresti usare l'attributo 'MetadataType' con un'altra classe che rispecchia la classe generata. ([Domande correlate] (http://stackoverflow.com/questions/2999936/using-dataannotations-with-entity-framework)) –
@ M.Babcock: no, il secondo snippet si trova in una classe parziale con lo stesso nome di il primo. È comune aggiungere estensioni alle classi autogenerate in questo modo, ma in genere si aggiungono solo proprietà/metodi, non li si ridefinisce (afaik, non è possibile). – Abel