我想知道是否可以从c#中的其他项目访问内部类变量.我知道在常规使用中这是不可能的,我在下面解释.
我有一个项目(P1 [类库])包含这些类...
internal class Settings
{
public static long size {get;set;}
public static DoSomethingInternalOnly()
{
}
}
public class Program
{
public static Main()
{
}
}
Run Code Online (Sandbox Code Playgroud)
......和另一个(P2)包含:
public class Program
{
public static Main()
{
//P1.CopyOfSettings.size = 2048; ???
}
}
Run Code Online (Sandbox Code Playgroud)
在Settings类中,我存储了app的内部变量(和方法),这些变量在其他项目中是看不到的.但是这些设置需要以某种方式从P2传递到P1所以我需要P2中的第二类"Settings2"包含相同的变量(仅变量!)作为带有public关键字的"Settings".
我觉得创建包含相同变量的几个类是浪费时间并使代码不可读.有没有更好的方法来实现这一目标?
Sim*_*ead 19
您可以使用InternalsVisibleTo属性并提供可以查看internal程序集中类型的特定程序集的名称.
话虽如此......我认为你正在接受过度设计.如果Settings该类仅属于程序集A ...请勿将其放入程序集B中...将其放入程序集A.
是的,使用 InternalsVisibleTo,但我只建议对单元测试项目执行此操作。
否则,您应该提取一个公共接口,将其公开并将其放在两个项目都可以引用的单独程序集中。
您可以将接口的所有属性设为只读,以便使用者无法更改它们。
| 归档时间: |
|
| 查看次数: |
12573 次 |
| 最近记录: |