Очень распростаненный кейс помечать методы, которые могут "поплыть " при аот или тримминге аттрибутами, ендпоинты приложения:
[] // анализатор преудпредить IL3050, но код все равно может упасть пр аот
[
] // IL2026 прудпреждение, но при тримминге PublishTrimmed=true (или том же аот) мы ловим MissingMethodException или null
По факту проблема не решается, а переносится на вызывающий код. Скорее всего это будет Program.cs
Как сделать оптимальней, если у нас есть .net 8+, на примере ендпоинтов
- Включить Request Delegate Generatro (RDG)
<PropertyGroup>
<PublishAot>true</PublishAot>
<EnableRequestDelegateGenerator>true</EnableRequestDelegateGenerator>
</PropertyGroup>
2.
А если JSON сериализация то можно так:
[]
[] // тип, который возвращает непосредственно ответ
internal partial class AppJsonContext : JsonSerializerContext;
builder.Services.ConfigureHttpJsonOptions(o =>
o.SerializerOptions.TypeInfoResolverChain.Insert(0, AppJsonContext.Default));
И нам никаких аттрибутов не нужно уже и мы уже точно решим потенциальные проблемы