private void ForEachConsoleObject(FConsoleObjectVisitor visitor, string str, bool startsWith) { if (visitor == null) { return; } // TCHAR*, IConsoleObject* Native_IConsoleManager.FConsoleObjectVisitor callback = delegate(IntPtr namePtr, IntPtr consoleObjectAddress) { string name = FStringMarshaler.FromCharPtr(namePtr); IConsoleObject consoleObject = new IConsoleObject(consoleObjectAddress); visitor(name, consoleObject); }; using (FStringUnsafe strUnsafe = new FStringUnsafe(str)) { if (startsWith) { Native_IConsoleManager.ForEachConsoleObjectThatStartsWith(Address, callback, ref strUnsafe.Array); } else { Native_IConsoleManager.ForEachConsoleObjectThatContains(Address, callback, ref strUnsafe.Array); } } }
private Dictionary <string, IConsoleObject> GetConsoleObjects(string str, bool startsWith) { Dictionary <string, IConsoleObject> result = new Dictionary <string, IConsoleObject>(); FConsoleObjectVisitor visitor = delegate(string name, IConsoleObject consoleObject) { result[name] = consoleObject; }; ForEachConsoleObject(visitor, str, startsWith); return(result); }
public void ForEachConsoleObjectThatContains(FConsoleObjectVisitor visitor, string contains) { ForEachConsoleObject(visitor, contains, false); }
public void ForEachConsoleObjectThatStartsWith(FConsoleObjectVisitor visitor, string startsWith = "") { ForEachConsoleObject(visitor, startsWith, true); }