public ServerHandler(string url, string SessionID, IRegistryCore registry) : base("POST", url) { m_SessionID = SessionID; m_registry = registry; m_methods = new Dictionary <string, List <MethodImplementation> >(); List <string> alreadyRunPlugins = new List <string>(); foreach (IAuroraDataPlugin plugin in Aurora.DataManager.DataManager.GetPlugins()) { if (alreadyRunPlugins.Contains(plugin.Name)) { continue; } alreadyRunPlugins.Add(plugin.Name); foreach (MethodInfo method in plugin.GetType().GetMethods()) { if (Attribute.GetCustomAttribute(method, typeof(CanBeReflected)) != null) { List <MethodImplementation> methods = new List <MethodImplementation>(); MethodImplementation imp = new MethodImplementation() { Method = method, Reference = plugin }; if (!m_methods.TryGetValue(method.Name, out methods)) { m_methods.Add(method.Name, (methods = new List <MethodImplementation>())); } methods.Add(imp); } } } }
public ServerHandler(string url, string SessionID, IRegistryCore registry) : base("POST", url) { m_SessionID = SessionID; m_registry = registry; if (m_methods == null) { m_methods = new Dictionary <string, List <MethodImplementation> >(); List <string> alreadyRunPlugins = new List <string>(); foreach (ConnectorBase plugin in ConnectorRegistry.Connectors) { if (alreadyRunPlugins.Contains(plugin.PluginName)) { continue; } alreadyRunPlugins.Add(plugin.PluginName); foreach (MethodInfo method in plugin.GetType().GetMethods()) { CanBeReflected reflection = (CanBeReflected)Attribute.GetCustomAttribute(method, typeof(CanBeReflected)); if (reflection != null) { string methodName = reflection.RenamedMethod == "" ? method.Name : reflection.RenamedMethod; List <MethodImplementation> methods = new List <MethodImplementation>(); MethodImplementation imp = new MethodImplementation() { Method = method, Reference = plugin, Attribute = reflection }; if (!m_methods.TryGetValue(methodName, out methods)) { m_methods.Add(methodName, (methods = new List <MethodImplementation>())); } methods.Add(imp); } } } } }
private bool GetMethodInfo(string method, int parameters, out MethodImplementation methodInfo) { List <MethodImplementation> methods = new List <MethodImplementation>(); if (m_methods.TryGetValue(method, out methods)) { if (methods.Count == 1) { methodInfo = methods[0]; return(true); } foreach (MethodImplementation m in methods) { if (m.Method.GetParameters().Length == parameters) { methodInfo = m; return(true); } } } methodInfo = null; return(false); }
private bool GetMethodInfo(string method, int parameters, out MethodImplementation methodInfo) { List <MethodImplementation> methods = new List <MethodImplementation>(); if (m_methods.TryGetValue(method, out methods)) { if (methods.Count == 1) { methodInfo = methods[0]; return(true); } foreach (MethodImplementation m in methods) { if (m.Method.GetParameters().Length == parameters) { methodInfo = m; return(true); } } } MainConsole.Instance.Warn("COULD NOT FIND METHOD: " + method); methodInfo = null; return(false); }