FieldInfo.IsAssembly Propiedad

Definición

Obtiene un valor que indica si Assembly describe la visibilidad posible de este campo; es decir, el campo es visible como mucho para otros tipos del mismo ensamblado y no es visible para los tipos derivados fuera del ensamblado.

C#
public bool IsAssembly { get; }

Valor de propiedad

true si Assembly describe exactamente la visibilidad de este campo; de lo contrario, false.

Implementaciones

Ejemplos

En el ejemplo de código siguiente se definen campos con distintos niveles de visibilidad y se muestran los valores de sus IsAssemblypropiedades , IsFamily, IsFamilyOrAssemblyy IsFamilyAndAssembly .

C#
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;
    private protected int f_private_protected;

    public static 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");

        foreach (FieldInfo f in typeof(Example).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_private_protected  False    False    False    False    True
 */

Comentarios

La visibilidad real de un campo está limitada por la visibilidad de su tipo. La IsAssembly propiedad puede ser true para un campo, pero si es un campo de un tipo anidado privado, el campo no es visible fuera del tipo contenedor.

La visibilidad de un campo se describe exactamente si FieldAttributes.Assembly el único modificador de visibilidad es internal (Friend en Visual Basic). Esta propiedad es false para los campos que están protected internal en C# (Protected Friend en Visual Basic, protected public en C++); use la IsFamilyOrAssembly propiedad para identificar estos campos.

Se aplica a

Produto Versións
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Consulte también