Access to internal classes from another project

c#, internal

Solution

You can use the InternalsVisibleTo attribute and provide the name of a specific assembly that can see the `internal` types in your assembly.

That being said.. I think you are bordering on over-designing this. If the `Settings` class belongs only to Assembly A... don't put it in Assembly B... put it in Assembly A.

Problem

I'm wondering if it's possible to access internal class variables from other project in c#. I know that is impossible in regular use, I explain it below. I have one project (P1 [class library]) containing those classes... ``` internal class Settings { public static long size {get;set;} public static DoSomethingInternalOnly() { } } public class Program { public static Main() { } } ``` ... and another one (P2) containing: ``` public class Program { public static Main() { //P1.CopyOfSettings.size = 2048; ??? } } ``` In Settings class I store internal variables (and methods) for app which cannot be visible from other projects. But those settings need to be passed somehow from P2 to P1 so I need second class "Settings2" in P2 containing the same variables (variables only!) as "Settings" with public keyword. I feel that creating several classes containing the same variables is a waste of time and makes code unreadable. Is there better way to accomplish this?

Original source