使用英语阅读

通过


IL2094:在方法的隐式 this 参数的“DynamicallyAccessedMembersAttribute”注释中使用的“DynamicallyAccessedMemberTypes”值与重写的 this 参数注释的“DynamicallyAccessedMemberTypes”值不匹配。 所有重写的成员都必须具有相同的属性用法

原因

虚拟方法的所有重写(包括基方法)必须在其所有组件上具有相同的 DynamicallyAccessedMembersAttribute 用法(返回值、参数和泛型参数)。

示例

C#
// This only works on methods in System.Type and derived classes - this is just an example
public class Type
{
  [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods)]
  public virtual void TestMethod() {}
}

public class DerivedType : Type
{
  // IL2094: 'DynamicallyAccessedMemberTypes' in 'DynamicallyAccessedMembersAttribute' on the implicit 'this' parameter of method 'DerivedType.TestMethod' don't match overridden implicit 'this' parameter of method 'Type.TestMethod'. All overridden members must have the same 'DynamicallyAccessedMembersAttribute' usage.
  [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields)]
  public override void TestMethod() {}
}