这真让我感到困惑,因为我不知道执行我的方法突然停止的任何明显原因。
我下面的方法相对简单,我要做的就是遍历对象集合,并根据当前数据将一些数据添加到新的Dictionary中。
public Dictionary<string, string> MapValidationErrorToIdentifiers(List<ErrorField> errors)
{
var mappings = new Dictionary<string, string>();
foreach (var error in errors)
{
string identifier;
if (error.CollectionIndex == "")
{
identifier = error.Section + "-" + error.FieldName.Replace(" ", "-");
}
else
{
identifier = error.Section + "-" + (error.CollectionIndex + 1) + "-" + error.FieldName.Replace(" ", "-");
}
identifier = identifier.ToLower();
mappings.Add(identifier, error.Message);
}
return mappings;
}
输入对象List<ErrorField>
由ErrorField
个对象组成,它们是简单的DTO对象。
public class ErrorField
{
public string FieldName { get; set; }
public string Section { get; set; }
public string CollectionIndex { get; set; }
public string Message { get; set; }
}
在一个实例中测试此方法期间,errors
输入对象包含12个ErrorField
对象,foreach成功完成了一次迭代,并且将键值对添加到了字典中。然后,在第二次迭代中,该方法开始工作,直到进行mappings.Add(identifier, error.Message);
调用为止,此时调试器完全停止,并且不再执行任何操作。
这里的奇怪之处是执行只是停止,没有引发异常或错误。此方法是较大的ASP.NET项目的一部分,并且在控制器中使用此方法。当执行停止时,它将导致我的端点返回404。不确定是否相关。