可以保护来自其他程序集的实现接口
本文关键字:程序集 实现 接口 其他 保护 | 更新日期: 2023-09-27 18:05:06
我正在实现的接口是在其他汇编预计。我已经添加了程序集引用和名称空间,但无法访问它?我想在我的类中实现它,当然接口和类在不同的程序集中。我得到编译时错误"由于保护级别无法访问…"
对我来说,它看起来很可怕。我不能访问这个interface
而不使它成为public
吗?
namespace DAL
{
interface IStdService
{
}
}
不能在标记为protected
的命名空间中有任何内容。只有internal
和public
是可能的。
只有这些是可能的,因为其他的没有意义。正如O.R. Mapper已经说过的,只有当它们已经是类的一部分时,这才有意义。
如果你写这样的代码:
protected interface IInterface
{
}
在编译时给出错误:
命名空间中定义的元素不能显式声明为private、protected或protected internal
internal interface IInterface
{
}
,它将使接口仅在程序集中可用,除非您通过InternalsVisibleTo
属性使其可用。
最新示例中的代码:
interface IInterface
{
}
标记接口internal
,这是类、接口等的默认值,但对于接口,这意味着它们只在程序集中可用,如前所述。