MethodBase.IsAssembly Właściwość

Definicja

Pobiera wartość wskazującą, czy potencjalna widoczność tej metody lub konstruktora jest opisana przez Assemblyprogram ; czyli metoda lub konstruktor jest widoczna co najwyżej dla innych typów w tym samym zestawie i nie jest widoczna dla typów pochodnych poza zestawem.

C#
public bool IsAssembly { get; }

Wartość właściwości

truejeśli widoczność tej metody lub konstruktora jest dokładnie opisana przez Assembly; w przeciwnym razie . false

Implementuje

Przykłady

Poniższy przykład kodu definiuje metody o różnych poziomach widoczności i wyświetla wartości ich IsAssemblywłaściwości , , IsFamilyIsFamilyOrAssemblyi IsFamilyAndAssembly .

C#
using System;
using System.Reflection;

public class Example
{
    public void m_public() {}
    internal void m_internal() {}
    protected void m_protected() {}
    protected internal void m_protected_public() {}
    private protected void m_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 (MethodBase m in typeof(Example).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_private_protected  False    False    False    False    True
 */

Uwagi

Rzeczywista widoczność metody jest ograniczona przez widoczność jej typu. Właściwość IsAssembly może dotyczyć true metody, ale jeśli jest metodą prywatnego typu zagnieżdżonego, metoda nie jest widoczna poza typem zawierającym.

Widoczność metody lub konstruktora jest dokładnie opisana, MethodAttributes.Assembly jeśli jedynym modyfikatorem widoczności jest internal (Friend w Visual Basic). Ta właściwość dotyczy false metod w protected internal języku C# (Protected Friend w języku Visual Basic protected public w języku C++); użyj IsFamilyOrAssembly właściwości , aby zidentyfikować takie metody.

Dotyczy

Produkt Wersje
.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

Zobacz też