Pergunta

Eu tenho um DTO que pode ser totalmente carregado ou preguiçoso carregado usando preguiçoso padrão de carga. Como ele é carregado depende do que a aplicação Flex precisa. No entanto, este DTO será enviado para uma aplicação Flex (SWF). Normalmente, um conjunto de, por exemplo, só será carregado quando chamado. No meu caso no entanto, a coleção só vai ser chamado no Flex, por isso a minha aplicação no lado do .NET, obviamente, não funciona neste caso (exceto se Flex faria uma chamada de servidor ... algo que eu gostaria de evitar).

No getter da coleção, os dados são obtidos a partir do banco de dados. Se eu estaria trabalhando com páginas ASP.NET, ele iria trabalhar, mas não se o DTO é enviado para Flex.

Como você lida com isso? Eu poderia chamar o getter antes de enviar o DTO para Flex, mas que parece terrível ... + chamar o getter só pode ser feito se for atribuído a alguma coisa (e a variável local que irá realizar a coleta nunca será usado ... ).

Foi útil?

Solução

Eu provavelmente introduzir um método Finalize para a um método de extensão FinalizeAll para várias coleções da classe classe e talvez. Este método seria simplesmente passar e referenciar todos os getters sobre as propriedades públicas da classe para garantir que eles são carregados. Você iria invocar Finalize (ou FinalizeAll) antes de enviar o objeto (s) ao seu aplicativo Flex. Você pode até querer fazer esta uma interface de modo que você pode testar para a necessidade de finalização antes de transferir seus objetos e invocar o método baseado em um teste para a interface em vez de verificação para cada classe individualmente.

NOTA: Finalize é apenas o primeiro nome que me veio à mente. Pode haver (provavelmente é) um nome melhor para isso.

Outras dicas

Você pode introduzir um método para dependentes de carga - loadDependencies - que deve levar de tudo carregamento lento para o seu objeto DTO antes de ser enviado sobre o fio (de Flex). Você pode abstract este método para uma interface para agilizar esse processo em diferentes DTOs. Não há nada contra o uso de getters a maneira como você descreveu dentro deste método.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top