Ho sempre trovato difficile, parlando, spiegare in quali casi potrebbe essere utile avere una property WriteOnly.
Oggi ho trovato questo caso, che di te...calza?
Ho uno UserControl che lavora con una classe del mio Object Model, gliela si setta come property, lui la visualizza e la gestisce e alla fine la si può anche leggere (così se l'utente l'ha cambiata, possiamo sempre ottenderla).
Il fatto è che questa classe è implementata come property in un'altra classe sempre del mio OM.
Esempio:
Classe Città
Properties Nome, Provincia
Classe Abitante
Properties Nome, Cognome, Città (di tipo Città)
Immaginate che lo UserControl gestisca un oggetto di tipo Città tramite la property Dato.
Questa property l'ho implementata WriteOnly perchè voglio evitare che venga usata per farne una Get.
Per riottenere l'oggetto Città modificato dallo UserControl voglio che si utilizzi il metodo Merge che, dato un oggetto Abitante, ne restituisce uno con solo la sua property Città aggiornata.
In questo modo per settarla:
usercontrolCittà.Città = objAbitante.Città;
Per rileggerla (riassegnarla):
objAbitante = usercontrolCittà.Merge(objAbitante);
Così, se dovessi avere altri UserControl che gestiscono altre subclassi del mio OM non mi devo preoccupare che "si pestino i piedi" ma userò il metodo Merge di ogni UserControl, che varierà solo i dati che lui gestisce (in questo caso la classe Città).
Lo so che vi ho annoiato e avrete già cambiato blog, ma volevo sapere cosa ne pensate...