这些天,我有一个简单的 C# 项目,通过 fortify 扫描报告存在安全风险。该项目基于 .NET Windows 窗体应用程序。这种风险的名称是Unreleased Resource: Unmanaged Object(unmanaged_object)
。
例如,如果我想通过将工具箱上的控制器图形拖放到表单设计中来构造标签控制器。然后修改字体大小会Form1.Designer
自动更改代码。例如,它将生成以下代码:
this.label1.font = new System.Drawing.Font(...)
关键是我们通过构造函数声明了一个 Font 对象System.Drawing.Font(...)
。但是我们不处置这个对象?那么,我们该如何规避这种风险呢?
ps,如果我们在文件中更改由visual studio生成的区域的代码Form1.Designer
。然后我们甚至不能再编辑表单了~(因为控制器的任何设置(例如改变foreColor
底部的属性)都会改变这部分文件中的代码)。
此外,我们不希望在初始化方法中创建每个控制器。有没有人有解决这个问题的好方法?非常感谢!!