0
關於下面的代碼,在查找需要處理的對象時,using語句是否考慮了通過_ItemDataBound方法和Eval方法調用的對象?還是會嘗試在附加事件之前進行處置,並且因爲它們在生命週期的後期發生而被解僱?將使用語句與Repeater DataBinds和事件結合使用
換句話說,在所有的Evals和附加事件被調用之後,它是否僅處理datacontext,或者這會導致datacontext已被處置錯誤?
protected void Page_Load(object sender, EventArgs e)
{
using (EventManager manager = new EventManager())
{
EventDates = manager.GetWhatsOn(Request.QueryString["category"]);
rptEventDates.DataSource = EventDates;
rptEventDates.DataBind();
}
...
public class EventManager : IDisposable
{
private MainDataContext db;
public EventManager()
{
db = new MainDataContext();
}
....other methods....
public void Dispose()
{
db.Dispose();
}
}
感謝喬恩,有道理。所以真的代碼是好的,但我不應該用using語句來包裝repeater,而應該讓垃圾回收做它的工作? –
@ A-Bop:我不知道'EventManager'是什麼或'GetWhatsOn'方法的作用,所以很難說你的代碼是否可以。 –
這很公平,我會盡力解釋我所得到的 - 對不起,如果它不是很清楚。如果EventDates包含在中繼器上的Eval()上調用的對象,但該對象來自EventManager中的datacontext - 是在Eval中處理的datacontext,因爲它在using語句中? –