C# 使用Spring.Net进行延迟负载收集

C# 使用Spring.Net进行延迟负载收集,c#,nhibernate,aop,spring.net,C#,Nhibernate,Aop,Spring.net,我在项目中使用Spring.Net进行依赖注入。现在我想用它来延迟加载我的对象属性 这是一个例子: 我使用: CustomerDao访问数据库(getCustomer(idCustomer)、getAddresses(idCustomer)) 客户(姓名、姓氏、IList地址等) 地址(…) 我想将Spring.Net配置为延迟加载Customer.Addresses属性 我想我必须使用拦截器。。。您能给我举一个简单的配置示例吗?您可以使用Castle Windsor DynamicProx

我在项目中使用Spring.Net进行依赖注入。现在我想用它来延迟加载我的对象属性

这是一个例子:

我使用:

  • CustomerDao访问数据库(getCustomer(idCustomer)、getAddresses(idCustomer))
  • 客户(姓名、姓氏、IList地址等)
  • 地址(…)
我想将Spring.Net配置为延迟加载Customer.Addresses属性


我想我必须使用拦截器。。。您能给我举一个简单的配置示例吗?

您可以使用Castle Windsor DynamicProxy实现创建自己的代理来延迟加载对象属性。但这不是一件小事

如果您想在DAO/DAL中延迟加载对象属性,我建议使用一个像样的ORM实现,比如NHibernate


您可以在github上的亚音速项目存储库中找到一个实现自己代理的示例。

我知道NHibernate,我知道Castle。。。在这个项目中,我不能使用它们!我必须在没有ORM的情况下使用Spring.Net。我指出了亚音速的代理实现——这应该会让你知道如何实现自己的代理实现。Afaik Spring.Net使用Castle Dynamic proxy进行AOP,因此,您可能希望检查是否可以使用它。我是否正确理解您的所有客户和地址实例都是在spring配置中配置的?这将是非常不寻常的。大多数情况下,从某种数据库中检索这些类型的对象(实体)。不,在Spring中只配置CustomerDao。客户和地址是POCO实体。