What the difference between protected and internal? What about "protected internal"?
Protected:
The type or member can be accessed only by code in
the same class or struct, or in a class that is derived from that class.
Internal:
The type or member can be accessed by any code in
the same assembly, but not from another assembly.
Protected Internal:
The type or member can be accessed by any code in
the same assembly, or by any derived class in another assembly.