Получение статического свойства из типаC#

Место общения программистов C#
Ответить
Anonymous
 Получение статического свойства из типа

Сообщение Anonymous »

Сейчас у меня есть этот код:

Код: Выделить всё

public interface IEventHandler
{
public static abstract DiscordIntents RequiredIntents { get; }
}

Код: Выделить всё

class EventHandler(...) : IEventHandler, ...
{
public static Discord​Intents RequiredIntents { get; } = ...;
}

Код: Выделить всё

// Classes that implement `IEventHandler`.
IEnumerable event_modules =
[
typeof(EventHandler),
...
];

var intents = ...;

foreach (var event_module in event_modules)
{
intents |= (DiscordIntents)event_module.InvokeMember("RequiredIntents", BindingFlags.Static | BindingFlags.Public | BindingFlags.GetProperty, null, null, null);
}

DiscordClientBuilder builder = DiscordClientBuilder.CreateDefault(token, intents);
Это работает, но мне интересно, можно ли воспользоваться тем фактом, что тип реализует IEventHandler, чтобы избежать InvokeMember?


Подробнее здесь: https://stackoverflow.com/questions/790 ... rom-a-type
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»