FieldInfo.IsAssembly Свойство

Определение

Возвращает значение, которое указывает, описана ли доступность данного поля в поле Assembly; другими словами, будет ли это поле полностью доступно для других полей той же сборки и недоступно для производных типов, не включенных в сборку.

public bool IsAssembly { get; }

Значение свойства

Значение true, если видимость этого поля точно описана в поле Assembly; в противном случае — значение false.

Реализации

Примеры

В следующем примере кода определяются поля с различными уровнями видимости и отображаются значения их IsAssemblyсвойств , IsFamily, IsFamilyOrAssemblyи IsFamilyAndAssembly .

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

Комментарии

Фактическая видимость поля ограничена видимостью его типа. Свойство IsAssembly может быть true для поля, но если это поле закрытого вложенного типа, то поле не отображается за пределами содержащего типа.

Видимость поля точно описывается, если единственным модификатором FieldAttributes.Assembly видимости является internal (Friend в Visual Basic). Это свойство предназначено false для полей, которые находятся protected internal в C# (Protected Friend в Visual Basic, protected public в C++); используйте IsFamilyOrAssembly свойство для идентификации таких полей.

Применяется к

Продукт Версии
.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
.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

См. также раздел