Ho una situazione in cui sto usando una libreria che è stata generata per fornire un'interfaccia XML in C # basata su un file XSD
eseguito attraverso xsd.exe
.
L'XML è strutturato in questo modo.
-Results
-ModelA
-ModelB
-ModelC
-ModelD
Quando in realtà sto lavorando con questo XML (che è mappato in oggetti di memoria interna grazie alla libreria) ho un sacco di codice che si applica a tutti i modelli. Ad esempio, potrei sapere che posso cercare un campo chiamato FinalResult
in tutti e quattro i modelli.
Se avessi il controllo sulle classi che rappresentano i modelli, potrei refactoring in modo che avrebbe più senso, ma il codice che viene generato tratta questi quattro modelli come entità separate, e il genitore è solo un genitore nel senso che ha variabili che indicano i suoi "figli", non in senso OOP.
Per quanto posso dire, questo significa che potrei usare qualcosa come la parola chiave dynamic
in C # ed evitare la duplicazione del codice, o riscrivere il codice più volte per avere sicurezza del tipo, essendo obbligato a farlo dal fatto che io avere il controllo sulla libreria esterna.