5
AKAなぜこのテストは失敗しますか?リフレクションで見たときに内部クラスが公開されないのはなぜですか?
[TestFixture]
public class Tests
{
[Test]
public void InnerClassShouldBePublic()
{
Assert.IsTrue(typeof (InnerClass).IsPublic);
}
public class InnerClass
{
}
}
関連するプロパティは「IsVisible」です。クラス(または構造体、インタフェース、列挙型、デリゲート型)がpublicで、すべての外部(包含)型もpublicであればtrueを返します。したがって、ネストされていないクラスの場合は 'IsPublic'、ネストされたタイプの場合は' IsNestedPublic'とすべての外部クラスに対して 'IsNestedPublic'、最も外側のクラスに' IsPublic'を組み合わせたものです。 –
'public'クラスの内部にある' protected'クラスは、私が前に述べた 'IsVisible'プロパティがfalseを返しても、ある意味で「可視」であることに注意してください。例:['TypeConverter + SimplePropertyDescriptor'](http://msdn.microsoft.com/en-us/library/system.componentmodel.typeconverter.simplepropertydescriptor.aspx) –