IsFamilyOrAssembly Property

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.

Namespace:   System.Reflection
Assembly:  mscorlib (in mscorlib.dll)

public bool IsFamilyOrAssembly { get; }

Property Value

Type: System.Boolean

true if access to this field is exactly described by FieldAttributes.FamORAssem; otherwise, false.

If 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.


The Visual Basic and C# languages cannot define fields with FieldAttributes.FamANDAssem visibility; that access level appears only in the C++ example.

using System;
using System.Reflection;

public class Example
    public int f_public;
    internal int f_internal;
    protected int f_protected;
    protected internal int f_protected_public;

    public static void Main()
        Console.WriteLine("\n{0,-30}{1,-18}{2}", "", "IsAssembly", "IsFamilyOrAssembly"); 
            "", "IsPublic", "IsFamily", "IsFamilyAndAssembly");

        foreach (FieldInfo f in typeof(Example).GetFields(
            BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public))

/* 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

Universal Windows Platform
Available since 4.5
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top
© 2015 Microsoft