In an assembly, there are modules that contain types, and types contain members that provide reflection. We can view the path, namespace and class of the assembly. We can also operate it.
We can instantiate the class of the assembly and discard the methods in the class, just as we usually use the assembly.
The reflection mechanism usually has the following purposes.
Use Assembly to define and load an assembly, load the modules listed in the assembly manifest, find a type from the assembly and create an instance of that type.
Use modules to discover the following information: assemblies containing modules, classes in modules, etc. You can also get all global methods defined on the module or other specific non-global methods.
Use ConstructorInfo to discover the following information: the name of the constructor, parameters, access modifiers (such as public or private) and implementation details (such as abstract or virtual). Call a specific constructor using the GetConstructor or getconstructor method of type.
Use MethodInfo to discover the following information: method name, return type, parameters, access modifiers (such as public or private) and implementation details (such as abstract or virtual). Call a specific method using the GetMethods or GetMethod method of type.
Use FieldInfo to discover the following information: the name of the field, access modifiers (such as public or private) and implementation details (such as static); And gets or sets the field value.
Use EventInfo to discover the following information: the name of the event, the data type of the event handler, custom attributes, declaration type, reflection type, etc. And add or remove event handlers.
Use PropertyInfo to discover the following information: the name, data type, declaration type, reflection type and read-only or writable state of the property; And gets or sets the property value.
Use parameter information to discover the following information: parameter name, data type, whether the parameter is an input parameter or an output parameter, and the position of the parameter in the method signature.
When you work in the reflection-only context of an application domain, use CustomAttributeData to discover information about custom attributes. By using CustomAttributeData, you can check elements without creating an instance of them.
Microsoft official explanation:/library/windows/apps/f7ykdhsy.aspx.