5
AKA warum schlägt dieser Test fehl?Warum sind innere Klassen in der Reflexion nicht öffentlich?
[TestFixture]
public class Tests
{
[Test]
public void InnerClassShouldBePublic()
{
Assert.IsTrue(typeof (InnerClass).IsPublic);
}
public class InnerClass
{
}
}
Eine verwandte Eigenschaft ist 'IsVisible'. Sie gibt true zurück, wenn die Klasse (oder struct, interface, enum, delegate type) öffentlich ist und alle äußeren (containing) Typen ebenfalls public sind. Also ist es für nicht verschachtelte Klassen wie 'IsPublic' und für verschachtelte Typen ist es wie' IsNestedPublic' kombiniert mit 'IsNestedPublic' für alle äußeren Klassen und' IsPublic' für die äußerste Klasse. –
Beachten Sie, dass eine "protected" -Klasse, die innerhalb einer "public" -Klasse sitzt, in gewisser Weise auch "sichtbar" ist, selbst wenn die von mir erwähnte 'IsVisible'-Eigenschaft false zurückgibt. Beispiel: ['TypeConverter + SimplePropertyDescriptor'] (http://msdn.microsoft.com/en-us/library/system.componentmodel.typeconverter.simplepropertydescriptor.aspx) –