Mono.Debugger.Backend.Mono.MonoLanguageBackend.LookupType C# (CSharp) Метод

LookupType() публичный Метод

public LookupType ( string name ) : TargetType
name string
Результат Mono.Debugger.Languages.TargetType
        public override TargetType LookupType(string name)
        {
            switch (name) {
            case "short":   name = "System.Int16";   break;
            case "ushort":  name = "System.UInt16";  break;
            case "int":     name = "System.Int32";   break;
            case "uint":    name = "System.UInt32";  break;
            case "long":    name = "System.Int64";   break;
            case "ulong":   name = "System.UInt64";  break;
            case "float":   name = "System.Single";  break;
            case "double":  name = "System.Double";  break;
            case "char":    name = "System.Char";    break;
            case "byte":    name = "System.Byte";    break;
            case "sbyte":   name = "System.SByte";   break;
            case "object":  name = "System.Object";  break;
            case "string":  name = "System.String";  break;
            case "bool":    name = "System.Boolean"; break;
            case "void":    name = "System.Void";    break;
            case "decimal": name = "System.Decimal"; break;
            }

            if (name.IndexOf ('[') >= 0)
                return null;

            foreach (MonoSymbolFile symfile in symfile_by_index.Values) {
                try {
                    Cecil.TypeDefinitionCollection types = symfile.Assembly.MainModule.Types;
                    // FIXME: Work around an API problem in Cecil.
                    foreach (Cecil.TypeDefinition type in types) {
                        if (type.FullName != name)
                            continue;

                        return symfile.LookupMonoType (type);
                    }
                } catch {
                }
            }

            return null;
        }

Usage Example

Пример #1
0
        internal bool CheckException(MonoLanguageBackend mono, TargetMemoryAccess target,
					      TargetAddress address)
        {
            TargetClassObject exc = mono.CreateObject (target, address) as TargetClassObject;
            if (exc == null)
                return false; // OOOPS

            if (exception == null)
                exception = mono.LookupType (Name);
            if (exception == null)
                return false;

            return IsSubclassOf (target, exc.Type, exception);
        }