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 on
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.
That is the point of internal
modifier - to not allow this. Either change it to public or use some kind of proxy class to expose the functionality you need to the outer world.
I think this is what you are looking for:
http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute.aspx
Yes it is, using InternalsVisibleTo, but I would only recommend doing this for Unit Test projects.
Otherwise, you should extract a common interface, make it public and put it in a separate assembly that can be references by both projects.
You could make all the properties of the interface read-only so that the consumer cannot change them.