可以保护来自其他程序集的实现接口

本文关键字:程序集 实现 接口 其他 保护 | 更新日期: 2023-09-27 18:05:06

我正在实现的接口是在其他汇编预计。我已经添加了程序集引用和名称空间,但无法访问它?我想在我的类中实现它,当然接口和类在不同的程序集中。我得到编译时错误"由于保护级别无法访问…"

对我来说,它看起来很可怕。我不能访问这个interface而不使它成为public吗?

代码:

namespace DAL
{
   interface IStdService
    {
    }
}

可以保护来自其他程序集的实现接口

不能在标记为protected的命名空间中有任何内容。只有internalpublic是可能的。

只有这些是可能的,因为其他的没有意义。正如O.R. Mapper已经说过的,只有当它们已经是类的一部分时,这才有意义。

如果你写这样的代码:

protected interface IInterface
{
}

在编译时给出错误:

命名空间中定义的元素不能显式声明为private、protected或protected internal

internal interface IInterface
{
}

,它将使接口仅在程序集中可用,除非您通过InternalsVisibleTo属性使其可用。

最新示例中的代码:

interface IInterface
{
}

标记接口internal,这是类、接口等的默认值,但对于接口,这意味着它们只在程序集中可用,如前所述。