Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

Accessing Default Members

Any type can have a default member, which is a member that is invoked when no member name is given. The following Visual Basic example invokes the default member of Class1, and the value it returns is assigned to i.

Dim c As New Class1()
Dim i As Integer i = Convert.ToInt32(c)

Default members are marked with the System.Reflection.DefaultMemberAttribute. attribute. The following example shows how to retrieve the default member by retrieving the custom attribute for the default member.

Type t = typeof(DefaultMemberAttribute);
DefaultMemberAttribute defMem = (DefaultMemberAttribute)Attribute.GetCustomAttribute(Assembly.GetAssembly(t), t);
MemberInfo[] memInfo = t.GetMember(defMem.MemberName);

It might be simpler to use Type.GetDefaultMembers, which yields exactly the same result. However, GetDefaultMembers throws an InvalidOperationException if there is more than one default member defined on the type. The following code example shows the syntax for GetDefaultMembers.

MemberInfo[] memInfo = t.GetDefaultMembers();

You can invoke default members by calling Type.InvokeMember with String.Empty ("") as the member name. InvokeMember retrieves the member with DefaultMemberAttribute from the type and then invokes it.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

Show:
© 2015 Microsoft