【问题标题】:Inherit internal base class from another internal child class [duplicate]从另一个内部子类继承内部基类[重复]
【发布时间】:2014-10-02 06:47:40
【问题描述】:

我在 MyProject 中有一个内部类。我的 UnitTestProject 中有另一个内部类。我想从 UnitTestProject.internalClass 继承 MyProject.internalClass。但我不能继承。这是我的代码。

namespace MyProject.Data
{
    internal class BaseClass
    {

    }
}


namespace MyUnitTests.Data
{
    internal class TestClass: BaseClass
    {

    }
}

我在 UnitTests 项目中添加了引用 MyProject.dll。但我仍然无法继承。我不确定我的做法是对还是错。请给我什么建议?

【问题讨论】:

    标签: c# internal


    【解决方案1】:

    InternalsVisibleToAttribute。您应该将此属性放入 MyProject 程序集的 AssemblyInfo.cs 中:

    [assembly:InternalsVisibleTo("MyUnitTests")]
    

    【讨论】:

    • 非常感谢。实际上,我正在关注已经离开的前辈所做的现有旧项目。我发现通过在谷歌搜索使用 InternalsVisibleToAttribute。但是我在不知道应该写在 AssemblyInfo.cs 中的情况下在类名顶部找到该属性时遇到了麻烦。
    【解决方案2】:

    Internal 表示该类仅对程序集本身可见。 将BaseClass 更改为public

    由于我们似乎在这里处理测试,还请查看 InternalsVisibleTo 以保持您的基类内部但允许显式(例如测试)程序集看到它。

    【讨论】:

      【解决方案3】:

      内部类仅在它们定义的程序集中可见。因此,默认情况下,无法从另一个程序集访问一个程序集中的内部类。

      为此,您可以使用InternalsVisibleToAttribute

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-05
        相关资源
        最近更新 更多