public Type GetType(string className, bool throwOnError, bool ignoreCase)
{
TypeNameParser parser = TypeNameParser.Parse(className, throwOnError);
if (parser.Error)
{
return null;
}
if (parser.AssemblyName != null)
{
if (throwOnError)
{
throw new ArgumentException("Type names passed to Module.GetType() must not specify an assembly.");
}
else
{
return null;
}
}
TypeName typeName = TypeName.Split(TypeNameParser.Unescape(parser.FirstNamePart));
Type type = ignoreCase
? FindTypeIgnoreCase(typeName.ToLowerInvariant())
: FindType(typeName);
if (type == null && __IsMissing)
{
throw new MissingModuleException((MissingModule)this);
}
return parser.Expand(type, this, throwOnError, className, false, ignoreCase);
}