既にご存知かもしれませんが、.NET Framework のprotected internalアクセス修飾子は奇妙な方法で動作します。クラスがprotected AND internalであることを意味するのではなく、クラスがprotected OR internalであることを意味します。つまり、変更されたクラスまたはメンバーは、同じアセンブリ内および同じ階層からアクセスできます。
それで、これを知ってください:いつそれを使いますか?例を挙げていただけますか?.NET Base Class Library 内に適切でわかりやすい使用例はありますか?