The protected
applies to different classes, and this can be seen with
class Derived : what.Class1.SomeDataProvider // note: Derived is not a nested class
{
public void f()
{
var data = this.data;
}
}
in a different assembly.
this.data
has to be accessible, since the class derives from SomeDataProvider
. Its type, ProtectedInternalClass
, is not accessible, since the class does not derive from Class1
.