我正在使用VS 2010编写C#类库。我正在引用一个我认为是使用非托管编译器编写的DLL,因为我不相信你可以在.NET托管代码中将方法标记为私有。
当我尝试从引用的DLL继承接口并实现Abstract Class时,它抱怨我没有实现特定的方法。我尝试手动但签名显然不匹配,因为它没有找到合适的方法来覆盖。
'xxx.xxx.xxx.xxx'未实现继承的抽象成员'xxx.xxx.xxx.Foo(string,xxx.xxx.xxx)'
我使用对象浏览器进行搜索并意识到它无法使用。隐藏的可能是因为它不是为了不被遗传?
我必须找到一种方法来完成这项工作。我怎样才能找到正确的签名?
提前感谢您对此事的帮助 MJ
答案 0 :(得分:0)
根据您提供的有限信息,我的猜测是DLL有一个看起来像这样的类:
namespace Xxx
{
public abstract class TheirType
{
// accessible instance constructor
protected TheirType()
{
}
// inaccessible abstract member
internal abstract void TheMethod()
{
}
}
}
这让人们首先认为他们可以从程序集外部的TheirType
派生,因为该构造函数是可访问的。但他们没有机会实现抽象成员TheMethod
,因为internal
成员在另一个程序集中无法访问。
如果TheirType
的作者
TheMethod
public
,protected internal
或protected
; OR internal
或private
,以显示它们不允许人们从其他程序集继承TheirType
。