我们如何处理stackoverflow异常C#

时间:2015-09-24 11:03:49

标签: c# umbraco

我在Umbraco CMS上编写C#,然后Microsoft Visual Studio检测到我应该处理堆栈溢出错误

var umbracoHelper = new Umbraco.Web.UmbracoHelper(Umbraco.Web.UmbracoContext.Current);
Image = umbracoHelper.Media(imageId).GetCropUrl("umbracoFile", "image");

我如何处理这个问题? 您可以在此链接上看到完整代码。 https://drive.google.com/open?id=0B6cMfQEoDEfwdnczSDRJakJIMzA

Umbraco版本7.2.8

工具:Microsoft Visual Studio 2013

1 个答案:

答案 0 :(得分:2)

我没有必要的声誉能够评论你的原始问题,因此这个"回答" - 所以我提前道歉。

您的代码示例中没有任何内容可以使StackOverflowException围绕您指示的行,因此您需要更深入地了解。您可能会在GetCropUrl()扩展方法上获得NullReferenceException,但是您没有经过测试以确保meda项返回有效对象。

所以其他人都不必下载它 - 这是你的代码片段(减去使用/命名空间):

public class Case
{
    public Case(IPublishedContent content) 
    {
        Id = content.Id;
        Description = content.GetPropertyValue<string>("description");
        Title = content.GetPropertyValue<string>("title");

        //image
        string image = content.GetPropertyValue<string>("image");            
        int imageId = 0;
        int.TryParse(image, out imageId);
        if (imageId != 0)
        {

                var umbracoHelper = new Umbraco.Web.UmbracoHelper(Umbraco.Web.UmbracoContext.Current);
                Image = umbracoHelper.Media(imageId).GetCropUrl("umbracoFile", "image");          
        }



        //Team
        string teamID = content.GetPropertyValue<string>("teamMember");
        Team = DAL.GetTeamProperties(teamID);
    }

    public Case() { }
    public int Id { get; set; } 
    public string Title { get; set; }            
    public string Description { get; set; }
    public string Image { get; set; }
    public List<Team> Team { get; set; }
}

您的问题更可能出现在此处,而不是提取图片网址的代码:

Team = DAL.GetTeamProperties(teamID);

但是需要更多信息 - 你能发布异常的实际堆栈跟踪吗?