我会努力弄清楚。这里是上下文:
我正在编码一个库,它将在另一个项目中用作动态DLL。
我有1个内部类和2个接口:
internal class FinalClass : IFinalClass
{
public string Libelle { get; set; }
}
public interface IFinalClass : IBase
{
// some properties
}
public interface IBase
{
string Libelle { get; set; }
}
然后,我将库加载到项目中,并且只想操作IFinalClass类型。
我创建了一个包含许多IFinalClass项的组合框,并将displaymember设置为“ Libelle”。问题是:我看不到“ Libelle”的值,确实出现了FinalClass的汇编。 (就像我们正在执行ToString()一样。)如果正确,组合框将找不到属性“ Libelle”。
但这很奇怪,因为如果在填充组合框数据源之前将IFinalClass项强制转换为IBase,一切都会正常进行。
我很好奇这种情况下发生了什么。
(请注意,实现“ Libelle”的类是内部的,因此另一个项目不知道这种类型。)
任何的想法? :)
谢谢!
最佳答案
Libelle
中的AParentClass
默认为private
。
但是默认情况下,在IBase
中它是公共的。
关于c# - C#中具有多个接口(interface)的属性可访问性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30397563/