Неизданный ресурс: неуправляемый объект

У меня есть проблемы с укреплением на 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, но это не помогает. Можете ли вы дать мне знать, как решить эту проблему?

Укрепить детали сообщения:

Функция DrawChart() в DrawController.cs не может правильно распоряжаться неуправляемыми системными ресурсами, выделенными Font() в строке 134.

1 ответ

Проблема в том, что при назначении нового шрифта для.TitleFont возникает исключение. В этом случае.TitleFont может все еще быть нулевым, но объект 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;
  }
}
Другие вопросы по тегам