66 {
69 if (assemblyName.Length > 0)
70 {
71 assembly =
ResolveAssembly(assemblyName, assemblyResolver, throwOnError, ref stackMark);
72 if (assembly == null)
73 {
74 return null;
75 }
76 }
78 if (names == null)
79 {
80 if (throwOnError)
81 {
82 throw new TypeLoadException(SR.Arg_TypeLoadNullStr);
83 }
84 return null;
85 }
86 Type type =
ResolveType(assembly, names, typeResolver, throwOnError, ignoreCase, ref stackMark);
88 {
89 return null;
90 }
93 if (typeArguments != null)
94 {
96 for (
int i = 0;
i < typeArguments.Length;
i++)
97 {
99 {
100 array[
i] = typeNameParser.ConstructType(assemblyResolver, typeResolver, throwOnError, ignoreCase, ref stackMark);
101 }
102 if (
array[i] ==
null)
103 {
104 return null;
105 }
106 }
107 }
109 fixed (
int*
value = modifiers)
110 {
112 return RuntimeTypeHandle.GetTypeHelper(
type,
array, pModifiers, (modifiers !=
null) ? modifiers.Length : 0);
113 }
114 }
TypeNameParser(SafeTypeNameParserHandle handle)
static Assembly ResolveAssembly(string asmName, Func< AssemblyName, Assembly > assemblyResolver, bool throwOnError, ref StackCrawlMark stackMark)
static Type ResolveType(Assembly assembly, string[] names, Func< Assembly, string, bool, Type > typeResolver, bool throwOnError, bool ignoreCase, ref StackCrawlMark stackMark)
SafeTypeNameParserHandle[] GetTypeArguments()