我有一个DTO其可以使用延迟加载模式满载或延迟装入。它是如何加载取决于Flex应用程序需要什么。然而,这DTO将被发送到一个Flex应用程序(SWF)。通常情况下,例如集合,调用时才会被加载。在我的情况然而,收集只会在Flex中调用,所以我在.NET端实现显然不会在这种情况下工作(除Flex是否会做一个服务器的呼叫......这是我想避免)。

在集合的吸气剂,该数据被从数据库中检索。如果我将与ASP.NET页面中工作,这是可行的,但如果DTO的发送到Flex的。

你会如何面对呢?我可以打电话,吸气发送DTO在Flex之前,但似乎可怕... +调用的getter,如果它被分配到的东西(和局部变量,将持有的收集将永远不会被使用只能做... )。

有帮助吗?

解决方案

我可能会引入为类和或许为类的各种集合一个Finalize扩展方法的FinalizeAll方法。这种方法只会经历和参考类的公共属性,所有的getter方法,以确保它们被加载。你会发送对象(S)到您的Flex应用程序中援引Finalize(或FinalizeAll)。你甚至可能想使这个接口,所以您可以根据该接口而不是单独检查每个类别的试验测试需要定稿transfering你的对象之前调用的方法。

请注意:完成就是这样突然出现在脑海的第一个名字。可以存在(可能是),用于这更好的名称。

其他提示

可以引入一种方法来加载家属 - loadDependencies - 正被发送的导线(在Flex)之前应该采取所有延迟加载您的DTO的对象。你可以抽象这种方法的接口,以简化在不同的DTO这样的过程。没有什么反对使用吸气剂你描述它这方法内的方式。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top