TypeBuilder.DefineNestedType Method (String, TypeAttributes, Type, array<Type[])

Defines a nested type, given its name, attributes, the type that it extends, and the interfaces that it implements.

Namespace:  System.Reflection.Emit
Assembly:  mscorlib (in mscorlib.dll)


<SecuritySafeCriticalAttribute> _
<ComVisibleAttribute(True)> _
Public Function DefineNestedType ( _
    name As String, _
    attr As TypeAttributes, _
    parent As Type, _
    interfaces As Type() _
) As TypeBuilder
public TypeBuilder DefineNestedType(
    string name,
    TypeAttributes attr,
    Type parent,
    Type[] interfaces


  • name
    Type: System.String
    The short name of the type. name cannot contain embedded nulls.
  • parent
    Type: System.Type
    The type that the nested type extends.
  • interfaces
    Type: array<System.Type[]
    The interfaces that the nested type implements.

Return Value

Type: System.Reflection.Emit.TypeBuilder
The defined nested type.


Exception Condition

The nested attribute is not specified.


This type is sealed.


This type is an array.


This type is an interface, but the nested type is not an interface.


The length of name is zero.


name is nulla null reference (Nothing in Visual Basic).


An element of the interfaces array is nulla null reference (Nothing in Visual Basic).


This method can be used to create nested types even after the CreateType method has been called on the enclosing type.

The nested type needs to be complete before you can reflect on it using GetMembers, GetNestedType, or GetNestedTypes.

See the description of CreateType for the order in which nested types and nesting types should be completed.

Version Information


Supported in: 5, 4, 3


For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.