假设我有一个来自我必须使用的外部 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 中抱怨?