MethodBase::IsFamilyOrAssembly Property
Gets a value indicating whether the potential visibility of this method or constructor is described by MethodAttributes::FamORAssem; that is, the method or constructor can be called 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 method or constructor is exactly described by MethodAttributes::FamORAssem; otherwise, false.
If a type member has MethodAttributes::FamORAssemvisibility, 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 method is limited by the visibility of its type. The IsFamilyOrAssembly property might be true for a method, but if it is a method of a private nested type then the method is not visible outside the containing type.
The visibility of a method or constructor is exactly described by MethodAttributes::FamORAssem if the visibility modifier is protected internal in C# (Protected Friend in Visual Basic, protected public in C++).
The following code example defines methods 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 methods with MethodAttributes::FamANDAssem visibility; that access level appears only in the C++ example. |
using namespace System; using namespace System::Reflection; public ref class Example { public: void m_public() {}; internal: void m_internal() {}; protected: void m_protected() {}; protected public: void m_protected_public() {}; protected private: void m_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 (MethodBase^ m in Example::typeid->GetMethods( BindingFlags::Instance | BindingFlags::NonPublic | BindingFlags::Public)) { if (m->Name->Substring(0, 1) == "m") { Console::WriteLine("{0,-21}{1,-9}{2,-9}{3,-9}{4,-9}{5,-9}", m->Name, m->IsPublic, m->IsAssembly, m->IsFamily, m->IsFamilyOrAssembly, m->IsFamilyAndAssembly ); } } } /* This code example produces output similar to the following: IsAssembly IsFamilyOrAssembly IsPublic IsFamily IsFamilyAndAssembly m_public True False False False False m_internal False True False False False m_protected False False True False False m_protected_public False False False True False m_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
