2011-10-26 28 views
0

我在我的項目中使用Spring.Net進行依賴注入。現在我想用它來延遲加載我的對象屬性。Spring.Net的延遲加載集合

這是一個例子:

我用:

  • CustomerDao訪問數據庫(GETCUSTOMER(idCustomer),getAddresses(idCustomer))
  • 客戶(姓名,IList的地址。 ..)
  • 地址(...)

我想Spring.Net配置爲延遲加載Customer.Add取消財產。

我想我必須使用一個攔截器......你能指點我一個簡單的配置示例嗎?

+0

我是否正確理解您的所有客戶和地址實例都是在您的彈簧配置中配置的?這將是非常不尋常的。大多數情況下,您從某種數據庫中檢索這些類型的對象(實體)。 – Marijn

+0

不,只有CustomerDao是在Spring中配置的。客戶和地址是POCO實體。 – danyolgiax

回答

0

您可以使用Castle Windsor DynamicProxy實現創建自己的代理來延遲加載對象屬性。但這不是一件小事!

如果你想在你的DAO/DAL中延遲加載對象屬性,我建議去一個體面的ORM實現,如NHibernate。

您可以在github的SubSonic項目資源庫的this file中找到自己的代理服務器的實現示例。

+0

我知道NHibernate,我知道Castle ......在這個項目中我不能使用它們!我必須使用沒有ORM的Spring.Net。 – danyolgiax

+0

我指出了亞音速的代理實現 - 應該給出一個想法如何實現自己的代理實現。 – saintedlama

+0

Afaik Spring.NET對AOP使用Castle動態代理,因此您可能需要檢查是否可以使用它。 – Marijn