0

假设我有一个来自我必须使用的外部 dll 的片段。

public class DerivedClass : IBaseInterface
{
    [JsonIgnore]
    [NonOverridable]
    [InspectorReadOnly]
    public string name;

    string IBaseInferface.name {
        get {
            return name;
        }
        set {
            name = value;
        }
    }
}

我正在使用https://github.com/AzeTheGreat/Publicise公开 dll ,以便我可以公开访问私有成员。

但是,如果我像这样在 JetBrains Rider 中使用公开的 dll:

public class Main
{
    private DerivedClass dobj;
    
    public void func()
    {
        // Jetbrains intellisense shows an ambiguous referencee error
        //   <AccessTest>\Main.cs:339 Ambiguous reference:
        //   string IBaseInterface.name (in class DerivedClass)
        //   string name (in class DerivedClass)
        //   match
        dobj.name = "";
    }
}

但是,该项目构建良好,没有任何错误。和 Visual Studio 做同样的事情,VS intellisense 根本没有检测到任何错误。

一种可能的解释是,JetBrains 反编译器似乎将公开的 IBaseInterface.name 显示为 public,但 Visual Studio 反编译器没有。(这对我来说没有任何意义,因为它们是同一个程序集并且反编译器显示不同的东西。)

有没有办法解决这个问题(我无法更改外部 DLL)?或者至少标记这条线,以便智能感知不会在 JetBrains Rider 中抱怨?

4

0 回答 0