Question

J'ai un DTO qui peut être entièrement chargé ou paresseux chargé à l'aide modèle de charge Lazy. Comment il est chargé dépend de ce que le Flex a besoin d'application. Cependant, cette DTO sera envoyée à une application Flex (swf). Normalement, une collection par exemple, ne sera chargé lorsqu'il est appelé. Dans mon cas, cependant, la collection ne sera appelé Flex, donc ma mise en œuvre du côté .NET ne fonctionne évidemment pas dans ce cas (sauf si Flex ferait un appel serveur ... quelque chose que je voudrais éviter).

Dans le getter de la collecte, les données sont récupérées à partir de la base de données. Si je travaillerai avec des pages ASP.NET, cela fonctionnerait, mais pas si le DTO est envoyé à Flex.

Comment réagiriez-vous cela? Je pourrais appeler le getter avant d'envoyer le DTO à Flex, mais cela semble terrible ... + d'appeler le getter ne peut être fait si elle est affectée à quelque chose (et la variable locale qui contiendra la collection ne sera jamais utilisé ... ).

Était-ce utile?

La solution

Je serais probablement introduire une méthode de Finalize pour la classe et peut-être une méthode d'extension de FinalizeAll pour diverses collections de la classe. Cette méthode serait tout simplement passer et listent toutes les getters sur les propriétés publiques de la classe pour veiller à ce qu'ils sont chargés. Vous invoquer Finalize (ou FinalizeAll) avant d'envoyer l'objet (s) à votre application Flex. Vous pourriez même vouloir en faire une interface afin que vous puissiez tester la nécessité d'une mise au point avant de transférer vos objets et invoquer la méthode basée sur un test de l'interface plutôt que de vérifier pour chaque classe individuellement.

NOTE: Finaliser est juste le premier nom qui surgit à l'esprit. Il peut y avoir (est probablement) un meilleur nom pour cela.

Autres conseils

Vous pouvez introduire une méthode pour charger à charge - loadDependencies - qui devrait prendre tout le chargement paresseux pour votre objet DTO avant d'être envoyé sur le fil (à Flex). Vous pouvez abstraite cette méthode à une interface pour simplifier ce processus entre les différents DTO. Il n'y a rien contre l'utilisation de getters la façon dont vous l'avez décrit dans cette méthode.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top