Неизданный ресурс: неуправляемый объект
У меня есть проблемы с укреплением на 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;
}
}