Если я использую инициализаторы объектов в используемом блоке, я получаю предупреждение "Анализ кода" о том, чтобы не утилизировать объект должным образом:
CA2000: Microsoft.Reliability: В методе 'ReCaptcha.CreateReCaptcha(этот HtmlHelper, string, string)' объект '< > g__initLocal0' не расположен по всем путям исключений. Вызовите System.IDisposable.Dispose на объекте '< > g__initLocal0', прежде чем все ссылки на него будут недоступны.
Вот код:
using (var control = new ReCaptchaControl()
{
ID = id,
Theme = theme,
SkipRecaptcha = false
})
{
// Do something here
}
Если я не использую инициализаторы объектов, Code Analysis удовлетворен:
using (var control = new ReCaptchaControl())
{
control.ID = id;
control.Theme = theme;
control.SkipRecaptcha = false;
// Do something here
}
В чем разница между этими двумя блоками кода? Я думал, что они приведут к тому же ИЛ. Или это ошибка в анализе кода?