代码之家  ›  专栏  ›  技术社区  ›  Nick Allen

如果我在using语句中返回,对象是否仍被释放?[复制]

  •  4
  • Nick Allen  · 技术社区  · 15 年前

    returning in the middle of a using block

    public bool CreateProxyItem(string name, Sitecore.Data.ID sourceID, Sitecore.Data.ID targetID)
    {
        // create an instance of the master database
        Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");
    
        // get the proxy item template
        Sitecore.Data.Items.TemplateItem proxyTemplate = master.Templates[Sitecore.TemplateIDs.Proxy];
    
        using (new Sitecore.SecurityModel.SecurityDisabler())
        {
            // get a reference to the proxy container item
            Item proxyContainer = master.Items["/sitecore/system/proxies/"];
    
            if (proxyTemplate != null && proxyContainer != null)
            {
                Item proxyItem = proxyContainer.Add(name, proxyTemplate);
    
                if (proxyItem != null)
                {
                    proxyItem.Editing.BeginEdit();
                    // editing here
                    proxyItem.Editing.EndEdit();
    
                    return true;
                }
            }
        }
    
        return false;
    }
    
    0 回复  |  直到 7 年前