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语句中? –