Пример #1
0
        // src/coreclr/src/vm/typeparse.cpp
        // https://docs.microsoft.com/en-us/dotnet/framework/reflection-and-codedom/specifying-fully-qualified-type-names

        /// <summary>
        /// Parses a single fully assembly qualified name.
        /// </summary>
        /// <param name="module">The module containing the assembly qualified name.</param>
        /// <param name="canonicalName">The fully qualified assembly name of the type.</param>
        /// <returns>The parsed type.</returns>
        public static TypeSignature Parse(ModuleDefinition module, string canonicalName)
        {
            var lexer  = new TypeNameLexer(new StringReader(canonicalName));
            var parser = new TypeNameParser(module, lexer);

            return(parser.ParseTypeSpec());
        }
Пример #2
0
 private TypeNameParser(ModuleDefinition module, TypeNameLexer lexer)
 {
     _module = module ?? throw new ArgumentNullException(nameof(module));
     _lexer  = lexer ?? throw new ArgumentNullException(nameof(lexer));
 }