我有以下C#代码,它从Checkmarx中收到“高”错误。我看不出有什么问题。
var dataDirectoryPath = AppDomain.CurrentDomain.GetData("DataDirectory").ToString();
var json = File.ReadAllText($"{dataDirectoryPath}{Path.DirectorySeparatorChar}somefile.json");
var settings = new
JsonSerializerSettings{TypeNameHandling=TypeNameHandling.None};
var targetPathSettings = JsonConvert.DeserializeObject<List<TargetPathSetting>>(json, settings);
它出现此错误:
在文件yyy中以xxx处理的序列化对象ReadAllText由文件zzz中的DeserializeObject反序列化
C#代码如下:
public class TargetPathSetting
{
public string PathSettingName { get; set; }
public PathSetting PathSetting { get; set; }
}
public class PathSetting
{
public string BaseUrl { get; set; }
public string ApplicationIdUri { get; set; }
}
我看不到文件中的任何内容都会引起任何类型的问题,尤其是使用TypeNameHandling.None设置。
问题出在C#的标准Checkmarx查询中。在这种情况下,Checkmarx无法识别此代码的更正。要修复它,您应该使用CxAudit并修改此查询。