c# - 从另一个项目访问内部类

标签 c# internal

我想知道是否可以在 C# 中从其他项目访问内部类变量。我知道这在常规使用中是不可能的,我在下面解释。

我有一个包含这些类的项目(P1 [类库])...

internal class Settings
{
    public static long size {get;set;}

    public static DoSomethingInternalOnly()
    {
    }
}

public class Program
{
    public static Main()
    {

    }
}

...和另一个 (P2) 包含:

public class Program
{
    public static Main()
    {
        //P1.CopyOfSettings.size = 2048; ???
    }
}

在设置类中,我存储了应用程序的内部变量(和方法),这些变量在其他项目中是不可见的。但是这些设置需要以某种方式从 P2 传递到 P1,所以我需要 P2 中的第二类“Settings2”包含与带有 public 关键字的“设置”相同的变量(仅限变量!)。

我觉得创建几个包含相同变量的类是浪费时间,而且会使代码难以阅读。有没有更好的方法来实现这一目标?

最佳答案

您可以使用 InternalsVisibleTo属性并提供可以在您的程序集中查看内部类型的特定程序集的名称。

话虽这么说..我认为你正在过度设计它。如果 Settings 类只属于程序集 A...不要将其放入程序集 B...将其放入程序集 A。

关于c# - 从另一个项目访问内部类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21527332/

相关文章:

c# - 如何判断一个字节数组是否被压缩

android - 如何在android中的辅助 Activity 上打开视频、音频和图像

c# - x64 与 x86 具有如此不同的性能结果背后的原因是什么?

c# - 从内部派生的公共(public)接口(interface)?

c# - 从 Controller 查看 ASP.net MVC5 访问按钮

c# - 将 URI 路径转换为 ​​.NET 中的相对文件系统路径

c# - 使用 .NET 2.0 在 XP 上运行 .NET 4.5 程序

c# - 带时区的 linq-to-sql 分组

php - PHP Eclipse Internal Browser 通常有 CSS 问题吗?

android - 如何获取内部存储目录如 "\flash"、"\emmc"