Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Propiedad MethodBase.IsFamilyOrAssembly

 

Publicado: octubre de 2016

Obtiene un valor que indica si la visibilidad posible de este método o constructor MethodAttributes.FamORAssem; es decir, el método o constructor puede llamarse clases derivadas dondequiera que estén y clases en el mismo ensamblado.

Espacio de nombres:   System.Reflection
Ensamblado:  mscorlib (en mscorlib.dll)

public bool IsFamilyOrAssembly { get; }

Valor de propiedad

Type: System.Boolean

true Si el acceso a este método o constructor describe exactamente MethodAttributes.FamORAssem; en caso contrario, false.

Si tiene un miembro de tipo MethodAttributes.FamORAssemvisibilidad, puede llamarla desde cualquier miembro de una clase derivada o cualquier miembro del mismo ensamblado, pero no desde cualquier otro tipo.

La visibilidad real de un método está limitada por la visibilidad de su tipo. La IsFamilyOrAssembly puede ser true para un método, pero si se trata de un método de un tipo anidado privado, a continuación, el método no es visible fuera del tipo contenedor.

Describe exactamente la visibilidad de un método o constructor MethodAttributes.FamORAssem Si el modificador de visibilidad es protected internal en C# (Protected Friend en Visual Basic, protected public en C++).

En el ejemplo de código siguiente se definen métodos con niveles de visibilidad y muestra los valores de sus IsAssembly, IsFamily, IsFamilyOrAssembly, y IsFamilyAndAssembly Propiedades.

System_CAPS_noteNota

Los lenguajes Visual Basic y C# no pueden definir métodos con MethodAttributes.FamANDAssem visibilidad; que el nivel de acceso sólo aparece en el ejemplo de 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() {}

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

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: