我想知道是否可以在 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/