📅  最后修改于: 2023-12-03 15:30:17.113000             🧑  作者: Mango
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。
如果默认成员是一个方法,则方法必须带有正确数量和类型的参数。
另外,请注意,此方法不返回其他成员,例如字段、事件或嵌套类型。