FieldInfo::IsFamilyOrAssembly Property
Gets a value indicating whether the potential visibility of this field is described by FieldAttributes::FamORAssem; that is, the field can be accessed by derived classes wherever they are, and by classes in the same assembly.
Assembly: mscorlib (in mscorlib.dll)
Property Value
Type: System::Booleantrue if access to this field is exactly described by FieldAttributes::FamORAssem; otherwise, false.
Implements
_FieldInfo::IsFamilyOrAssemblyIf a field has FamORAssem level visibility, it can be called from any member in a derived class or any member in the same assembly, but not from any other type.
The actual visibility of a field is limited by the visibility of its type. The IsFamilyOrAssembly property might be true for a field, but if it is a field of a private nested type then the field is not visible outside the containing type.
The visibility of a field is exactly described by FieldAttributes::FamORAssem if the visibility modifier is protected internal in C# (Protected Friend in Visual Basic, protected public in C++).
The following code example defines fields with varying levels of visibility, and displays the values of their IsAssembly, IsFamily, IsFamilyOrAssembly, and IsFamilyAndAssembly properties.
Note |
|---|
The Visual Basic and C# languages cannot define fields with FieldAttributes::FamANDAssem visibility; that access level appears only in the C++ example. |
using namespace System; using namespace System::Reflection; public ref class Example { public: int f_public; internal: int f_internal; protected: int f_protected; protected public: int f_protected_public; protected private: int f_protected_private; }; void main() { Console::WriteLine("\n{0,-30}{1,-18}{2}", "", "IsAssembly", "IsFamilyOrAssembly"); Console::WriteLine("{0,-21}{1,-18}{2,-18}{3}\n", "", "IsPublic", "IsFamily", "IsFamilyAndAssembly"); for each (FieldInfo^ f in Example::typeid->GetFields( BindingFlags::Instance | BindingFlags::NonPublic | BindingFlags::Public)) { Console::WriteLine("{0,-21}{1,-9}{2,-9}{3,-9}{4,-9}{5,-9}", f->Name, f->IsPublic, f->IsAssembly, f->IsFamily, f->IsFamilyOrAssembly, f->IsFamilyAndAssembly ); } } /* This code example produces output similar to the following: IsAssembly IsFamilyOrAssembly IsPublic IsFamily IsFamilyAndAssembly f_public True False False False False f_internal False True False False False f_protected False False True False False f_protected_public False False False True False f_protected_private False False False False True */
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
