5
AKA Dlaczego ten test kończy się niepowodzeniem?Dlaczego klasy wewnętrzne nie są publiczne, gdy są oglądane w odbiciu?
[TestFixture]
public class Tests
{
[Test]
public void InnerClassShouldBePublic()
{
Assert.IsTrue(typeof (InnerClass).IsPublic);
}
public class InnerClass
{
}
}
Związana właściwość to 'IsVisible'. Zwraca wartość true, jeśli klasa (lub struct, interface, enum, delegate type) jest jawna, a wszystkie zewnętrzne (zawierające) typy są również publiczne. Tak więc dla klas niezagnieżdżonych jest to 'IsPublic', a dla typów zagnieżdżonych jest to' IsNestedPublic' w połączeniu z 'IsNestedPublic' dla wszystkich klas zewnętrznych i' IsPublic' dla najbardziej zewnętrznej klasy. –
Należy zauważyć, że klasa 'protected', która znajduje się wewnątrz klasy' public' jest również "widoczna" w pewnym sensie, nawet jeśli właściwość 'IsVisible', o której wspomniałem wcześniej, zwraca wartość false. Przykład: ['TypeConverter + SimplePropertyDescriptor'] (http://msdn.microsoft.com/en-us/library/system.componentmodel.typeconverter.simplepropertydescriptor.aspx) –