Domanda

Ho una DTO che può essere completamente caricato o pigrizia loaded utilizzando pigro Load Pattern. Come viene caricata dipende da ciò che ha bisogno l'applicazione Flex. Tuttavia, questo DTO verrà inviato a un'applicazione Flex (SWF). Normalmente, una collezione per esempio, verrà caricato solo quando viene chiamato. Nel mio caso, tuttavia, la collezione sarà chiamato solo in Flex, così la mia implementazione sul lato .NET, ovviamente, non funziona in questo caso (a meno che Flex farebbe una chiamata server ... una cosa che vorrebbe evitare).

Nel getter della raccolta, i dati vengono recuperati dal database. Se avrei lavorato con le pagine ASP.NET, che avrebbe funzionato, ma non se la DTO viene inviato a Flex.

Come avete a che fare con questo? Potrei chiamare il getter prima di inviare il DTO a Flex, ma che sembra terribile ... + chiamando il getter può essere fatto solo se è assegnato a qualcosa (e la variabile locale che conterrà la collezione non sarà mai utilizzato ... ).

È stato utile?

Soluzione

Io probabilmente introdurre un metodo Finalize per la classe e forse un metodo di estensione FinalizeAll per varie collezioni della classe. Questo metodo sarebbe semplicemente passare attraverso e riferimento tutti i getter sulle proprietà pubbliche della classe per garantire che essi siano caricati. Si potrebbe richiamare Finalize (o FinalizeAll) prima di inviare l'oggetto (s) al tuo Flex app. Si potrebbe anche voler fare questo un'interfaccia in modo da poter verificare la necessità di messa a punto prima di trasferire gli oggetti e richiamare il metodo basato su un test per l'interfaccia, piuttosto che il controllo per ogni classe individuale.

NOTA: Finalizza è solo il primo nome che mi è venuta in mente. Ci possono essere (probabilmente è) un nome migliore per questo.

Altri suggerimenti

È possibile introdurre un metodo per caricare carico - loadDependencies - che dovrebbe prendere di tutto lazy loading per l'oggetto DTO prima di essere inviati attraverso il filo (a Flex). È possibile abstract questo metodo per un'interfaccia per semplificare tale processo attraverso diverse DTOs. Non v'è nulla contro l'uso di getter il modo in cui hai descritto all'interno di questo metodo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top