che ho una classe con un numero qualsiasi di proprietà di qualsiasi tipoAggiunta di attributi aggiuntivi per ogni proprietà di una classe
public class Test
{
public string A {get;set;}
public object B {get;set;}
public int C {get;set;}
public CustomClass D {get;set;}
}
Voglio che tutti gli oggetti all'interno di questa classe ad avere una nozione di 'errori' e 'avvertimenti'. Ad esempio, in base ad alcune condizioni in un'altra classe, potrei voler impostare un avviso sulla proprietà A e quindi visualizzare tali informazioni nella GUI. La GUI non è la mia preoccupazione; piuttosto come dovrei impostare questo avviso? Mi piacerebbe essere in grado di fare qualcosa di simile:
Per ogni proprietà in una classe, aggiungere un 'Warning' e 'Errore' proprietà tale che posso fare ..
Test t = new Test();
t.A.Warning = "This is a warning that the GUI will know to display in yellow".
t.B.Error = null;
Qual è la migliore modo di fare questo? Sarebbe bello se potessi aggiungere un attributo personalizzato a ciascuna proprietà della classe che aggiungesse queste proprietà aggiuntive e mi permettesse di accedervi in modo chiaro.
Ho visto soluzioni che aggiungono un dizionario alla classe genitore (Test), e quindi passano stringhe che corrispondono ai nomi di proprietà, o usano reflection per ottenere il nome della proprietà e passarlo, ma preferirei qualcosa di più pulito .
Grazie per la risposta. Penso che implementerò questo. Non mi piace dover usare newWarning.Value per accedere effettivamente alle proprietà della stringa, ma sembra che dovrò sacrificare qualche comodità da qualche parte. – user981225