Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
foreach (Assembly assembly in assemblies)
{
foreach (Type type in assembly.GetTypes())
{
foreach (MethodInfo method in type.GetMethods(
BindingFlags.Public |
BindingFlags.NonPublic |
BindingFlags.Instance |
BindingFlags.Static))
{
CommandAttribute command = method.GetCustomAttribute<CommandAttribute>();
if (command != null)
{
string key = command.Name == string.Empty ? method.Name : command.Name;
if (!_availableCommands.ContainsKey(key))
{
_availableCommands.Add(key, method);
}
else
{
WriteLine($"command with name '{key}' has already been found!", Color.red);
}
}
}
}
}
Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
foreach (Assembly assembly in assemblies)
{
foreach (Type type in assembly.GetTypes())
{
foreach (MethodInfo method in type.GetMethods(
BindingFlags.Public |
BindingFlags.NonPublic |
BindingFlags.Instance |
BindingFlags.Static))
{
CommandAttribute command = method.GetCustomAttribute<CommandAttribute>();
if (command != null)
{
string key = command.Name == string.Empty ? method.Name : command.Name;
if (!_availableCommands.ContainsKey(key))
{
_availableCommands.Add(key, method);
}
else
{
WriteLine($"command with name '{key}' has already been found!", Color.red);
}
}
}
}
}