var storage = new PermissionsStorage();
// Поиск реализаций интерфейса IAuthorizationContext.
var interfaceType = typeof(IAuthorizationContext);
var types = Assembly.GetExecutingAssembly()
.GetTypes()
.Where(type => interfaceType.IsAssignableFrom(type));
Dictionary<string, string> gdfg = types
.SelectMany(t => t.GetMethods())
.Where(m => m.GetCustomAttribute<ActionPermissionAttribute>(false)?.Permission != null)
.ToDictionary(mi => $"{mi.DeclaringType.FullName}.{mi.Name}", mi =>
mi.GetCustomAttribute<ActionPermissionAttribute>(false)?.Permission);