通过


CA2257:在具有 “DynamicInterfaceCastableImplementationAttribute”的接口上定义的成员应为“static”

属性
规则 ID CA2257
标题 在具有“DynamicInterfaceCastableImplementationAttribute”的接口上定义的成员应为“static”
类别 使用情况
修复会引起中断还是不会引起中断 非中断
在 .NET 10 中默认启用 作为警告
适用的语言 C# 和 Visual Basic

原因

接口成员未被显式实现或未标记为 static

规则说明

由于实现 IDynamicInterfaceCastable 的类型可能无法在元数据中实现动态接口,因此对不是在此类型上定义的显式实现的实例接口成员的调用可能会在运行时失败。 若要避免运行时错误,请标记新接口成员 static

如何解决违规

将接口成员标记为 static

Example

[DynamicInterfaceCastableImplementation]
interface IExample
{
    // This method violates the rule.
    void BadMethod();

    // This method satisfies the rule.
    static void GoodMethod()
    {
        // ...
    }
}

何时抑制错误

不要抑制此规则发出的警告。

另请参阅