C# 我需要将第三方库中的方法标记为错误-如何标记?

C# 我需要将第三方库中的方法标记为错误-如何标记?,c#,interface,C#,Interface,我需要找出一种方法,使第三方库的某个特定调用失败。其中一个基本接口的参数中有一个对象,它破坏了类型安全检查的功能 我正在使用DI注入以下第三方接口 public interface IValidator<in T> : IValidator { Task<ValidationResult> ValidateAsync(T instance, CancellationToken cancellation = default); } 公共接口IValidator:IV

我需要找出一种方法,使第三方库的某个特定调用失败。其中一个基本接口的参数中有一个对象,它破坏了类型安全检查的功能

我正在使用DI注入以下第三方接口

public interface IValidator<in T> : IValidator {
   Task<ValidationResult> ValidateAsync(T instance, CancellationToken cancellation = default);
}
公共接口IValidator:IValidator{
TaskValidateAsync(T实例,CancellationToken cancellation=default);
}
这个第三方库也定义了它

public interface IValidator
{
   Task<ValidationResult> ValidateAsync(object instance, CancellationToken cancellation = default);
}
公共接口IValidator
{
任务ValidateAsync(对象实例,CancellationToken cancellation=default);
}
这意味着整个过程不是类型安全的,因为它返回到对象。这意味着更多的运行时错误

有没有办法编写一个resharper方法来标记此方法的对象版本的所有使用


我希望库不将类型安全验证程序与非类型安全验证程序分开,但在更改之前,我想突出显示这些错误。

没有简单的方法可以做到这一点,显然您可以在resharper中执行“高级查找使用”。然而,我认为唯一的另一个选择是使用Roslyn代码分析器来进行静态分析,或者使用反射和运行时进行一些愚蠢的操作analysis@TheGeneral我的第一个想法是一个隐藏不需要的方法的门面。。。不是特别“容易”,但我更喜欢反思。我错在哪里?(我怀疑我可能是)@Fildor说得好事实上,我的假设是已经有一个大型项目建立在这个基础上。你可能想写一个答案。要做到这一点并不容易,显然你可以在resharper中使用“高级查找”。然而,我认为唯一的另一个选择是使用Roslyn代码分析器来进行静态分析,或者使用反射和运行时进行一些愚蠢的操作analysis@TheGeneral我的第一个想法是一个隐藏不需要的方法的门面。。。不是特别“容易”,但我更喜欢反思。我错在哪里?(我怀疑我可能是)@Fildor说得好事实上,我的假设是已经有一个大型项目建立在这个基础上。你可能想写一个答案