private int SymbolCount = 1; // 0 is reserved for generic objects /** * The idea here is to create a shorthand for an object that is typed as the object so as to be easily used * To achieve that, we assign the given object to a reserved global generic object, and then create a variable that is casted to the correct type for that symbol */ public async Task <string> AddToNextGlobal(object obj, Action onUnRegister = null) { var targetType = obj.GetType(); var symbol = "_0"; if (targetType.IsVisible) { var parsed = new ParsedAssemblyQualifiedName.ParsedAssemblyQualifiedName(targetType.AssemblyQualifiedName); symbol = string.Format("_{0}", SymbolCount++); Globals._ImmediateWindowReservedGlobal = obj; var code = string.Format("var {0} = _ImmediateWindowReservedGlobal as {1};", symbol, parsed.CSharpStyleName.Value); var error = await EvaluateSilently(code); if (error != null) { Debug.Log("Error while trying to add a symbol: " + error.Message + " -- Code: " + code + "\n"); } } if (OnUnRegister != null) { OnUnRegister(); } OnUnRegister = onUnRegister; return(symbol); }
public TypeNameView(object obj) { var type = obj.GetType(); var parsed = new ParsedAssemblyQualifiedName.ParsedAssemblyQualifiedName(type.AssemblyQualifiedName); Init(type.Name, "typename", parsed.CSharpStyleName.Value); }
public Interface(Type interfaceType, object obj) { var parsed = new ParsedAssemblyQualifiedName.ParsedAssemblyQualifiedName(interfaceType.AssemblyQualifiedName, true); var parsedLong = new ParsedAssemblyQualifiedName.ParsedAssemblyQualifiedName(interfaceType.AssemblyQualifiedName); var interfaceSpan = new Span(parsed.CSharpStyleName.Value, "interface"); interfaceSpan.tooltip = parsedLong.CSharpStyleName.Value; Add(interfaceSpan); }