OrganizationServiceProxy和OrganizationServiceContext都支持dispose方法。我是否需要将它们包装在using语句中?
using (var proxy = GetOrganizationServiceProxy(Constants.OrgName))
{
using (var context = new OrganizationServiceContext(proxy))
{
// Linq Code Here
}
}
或者正确处理上下文关闭代理,这意味着只需要这个吗?
var proxy = GetOrganizationServiceProxy(Constants.OrgName)
using (var context = new OrganizationServiceContext(proxy))
{
// Linq Code Here
}
答案 0 :(得分:6)
上下文无法处理代理,因为它无法确定它是否被任何其他对象使用。
如果您查看OrganizationServiceContext的Dispose
,您将看到
public void Dispose()
{
this.Dispose(true);
GC.SuppressFinalize((object) this);
}
protected virtual void Dispose(bool disposing)
{
if (!disposing)
return;
this.ClearChanges();
}
顺便说一句。你可以结合使用语句
using (var proxy = GetOrganizationServiceProxy(Constants.OrgName))
using (var context = new OrganizationServiceContext(proxy))
{
// Linq Code Here
}