📜  C#| Type.GetDefaultMembers()方法(1)

📅  最后修改于: 2023-12-03 15:30:17.113000             🧑  作者: Mango

C# | Type.GetDefaultMembers()方法

Type.GetDefaultMembers()方法返回目标类型的默认成员。默认成员是类型的默认成员(例如,DefaultMemberAttribute指定的成员)、属性(如果存在)或方法(如果存在)。

语法
public abstract MemberInfo[] GetDefaultMembers();
参数

该方法没有参数。

返回值

类型:MemberInfo[]

目标类型的默认成员。

示例代码
using System;
using System.Reflection;

class DefaultMember
{
    public string this[int index]
    {
        get { return "the value"; }
        set { }
    }
    public string DefaultProperty
    {
        get { return "the value"; }
        set { }
    }
}

class Example
{
    static void Main()
    {
        DefaultMember dm = new DefaultMember();
        Type t = dm.GetType();

        MemberInfo[] members = t.GetDefaultMembers();
        Console.WriteLine("{0} type members:", t.FullName);
        foreach (var member in members)
        {
            Console.WriteLine("    {0};", member.ToString());
        }
    }
}
输出结果
Example.DefaultMember type members:
    System.String this[Int32];
    System.String DefaultProperty;
解释

以上代码输出了DefaultMember类型的成员。根据DefaultMemberAttribute特性,this[int]属性是该类型的默认成员。如果DefaultMemberAttribute特性不存在,则是DefaultProperty属性作为默认成员。

注意事项

要使用Type.GetDefaultMembers()方法,当前应用程序域中必须具有完全信任级别的权限。 如果没有足够的权限,则会引发SecurityException。

如果默认成员是一个方法,则方法必须带有正确数量和类型的参数。

另外,请注意,此方法不返回其他成员,例如字段、事件或嵌套类型。