Поделиться через


IL2089: Значение, хранящееся в поле "target field", не удовлетворяет требованиям DynamicallyAccessedMembersAttribute. Универсальный параметр "source generic parameter" для "source method or type" не имеет соответствующих заметок. Исходное значение должно объявлять по меньшей мере такие же требования, которые были объявлены для назначенного ему целевого расположения.

Причина

В целевом расположении объявляются некоторые требования к значению типа с использованием его DynamicallyAccessedMembersAttribute. Кроме того, нужно обеспечить соответствие этим требованиям путем их объявления в исходном значении с использованием DynamicallyAccessedMembersAttribute. При необходимости исходное значение может объявлять больше требований, чем исходный объект.

Пример

[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)]
Type _typeFieldWithRequirements;

void TestMethod<TSource>()
{
    // IL2089 Trim analysis: value stored in field '_typeFieldWithRequirements' does not satisfy 'DynamicallyAccessedMembersAttribute' requirements. The generic parameter 'TSource' of 'TestMethod' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.
    _typeFieldWithRequirements = typeof(TSource);
}

Фиксации

Дополнительные сведения см. в разделе "Исправление предупреждений ".