У меня есть ASP.Net Core 2.1
, C#
приложение.Я использую Анализатор распределения кучи Clr
https://marketplace.visualstudio.com/items?itemName=MukulSabharwal.ClrHeapAllocationAnalyzer
Один из методов выглядит следующим образом
Ex # 1
public void ConfigureServices(IServiceCollection services) {
services.AddSingleton<IPocoDynamo>(serviceProvider => {
var pocoDynamo = new PocoDynamo(serviceProvider.GetRequieredService<IAmazonDynamoDB>());
pocoDynamo.SomeMethod();
return pocoDynamo;
});
}
Пример. # 2
public async Task<EventTO> AddEvent(EventTO eventObj)
{
try
{
throw new Exception("Error!");
}
catch (Exception ex)
{
Logger.Log(ex, eventObj);
return null;
}
}
Я использую DI во всем приложении.Но везде, где анализатор обнаруживает ключевое слово new
, он предупреждает как
HAA0502 Явное распределение нового ссылочного типа
Также везде, где используется лямбда-выражение, это предупреждениекак (как в примере № 1)
Warning HAA0301 Heap allocation of closure Captures:
Что вызывает это и как с этим бороться?
Спасибо!