未发布的资源:非托管对象

时间:2014-12-24 16:43:26

标签: c# fortify

我在代码的new font()行有强化问题

  

未发布资源:非托管对象-Fortify c#

代码:

try
{
 var c = new ChartArea();
 c.AxisY.TitleFont =  new Font("Arial", 10, FontStyle.Bold);// --> Fortify issue
}
finally
{
  if (ca.AxisY.TitleFont!= null)
      {
        ca.AxisY.TitleFont.Dispose(); //--> does not resolve the foritfy issue
      }
}

我试图处理titlefont,但它没有帮助。你能告诉我如何解决这个问题吗?

Fortify详细信息:

  

DrawController.cs中的函数DrawChart()无法正常运行   处理第134行上Font()分配的非托管系统资源。

1 个答案:

答案 0 :(得分:0)

问题是如果将新Font分配给.TitleFont会抛出异常。在这种情况下,.TitleFont可能仍然为null,但Font对象已经被分配,并且您没有保留它的句柄。

更多一点打字可能会解决问题:

var c = null;
Font arial10bold = null;
try
{
 c = new ChartArea();
 arial10bold = new Font("Arial", 10, FontStyle.Bold);
 c.AxisY.TitleFont =  arial10bold;
}
finally
{
  if ( arial10bold != null ) {
      arial10bold.Dispose;
  }
}