| Assembly | Reflection class describing assembly. Support is limited as the rules are quite different between C# and C++. Objects of this class should only be allocated using System::MakeObject() function. Never create instance of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument. | 
| AssemblyName | Defines assembly name. Objects of this class should only be allocated using System::MakeObject() function. Never create instance of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument. | 
| AssemblyTypeRegistration | Singleton to register type in executing assembly. | 
| AssemblyTypeRegistrationBase | Base type for singletons to register type in executing assembly. | 
| ConstructorInfo | Provides access to constructor metadata. | 
| FieldInfo | Discovers the attributes of a field and provides access to field metadata. | 
| MemberInfo | Provides reflection information on members. Objects of this class should only be allocated using System::MakeObject() function. Never create instance of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument. | 
| MethodBase | Base information on method. Objects of this class should only be allocated using System::MakeObject() function. Never create instance of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument. | 
| MethodInfo | Represents information on class method. | 
| PropertyInfo | Represents property information. |