MethodBase.IsAssembly Propiedad

Definición

Obtiene un valor que indica si Assembly describe la visibilidad posible de este método o constructor; es decir, el método o el constructor 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 método o constructor; de lo contrario, false.

Implementaciones

Ejemplos

En el ejemplo de código siguiente se definen métodos 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 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
 */

Comentarios

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

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

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