Size: a a a

DotNetRuChat🍂

2016 July 31

ВС

Василий Старовойтов in DotNetRuChat🍂
Можно в хосте по тику опрашивать, но это не труъ
источник

NK

ID:221868624 in DotNetRuChat🍂
Если ты создашь статический класс в плагин провайдере со статическими (!) эвентами и добавишь туда нужные методы при загрузке программы, позже ты можешь их вызывать из плагинов.
источник

NK

ID:221868624 in DotNetRuChat🍂
Можно ещё так
источник

NK

ID:221868624 in DotNetRuChat🍂
Да и вообще можно много чего на самом деле вплоть до использования делегатов
источник

NK

ID:221868624 in DotNetRuChat🍂
Вот тут фишка шарпа перед джавой: НЕИСТОВОЕ КОЛИЧЕСТВО РЕАЛИЗАЦИИ ПЛАГИНОВ
источник

NK

ID:221868624 in DotNetRuChat🍂
При этом ты свободно можешь даже добавлять в эвенты методы из плагинов
источник

NK

ID:221868624 in DotNetRuChat🍂
Но тогда нужно будет позаботится об конфликтах которые потенциально могут возникнуть, но это уже логика программы и плагинов
источник

ВС

Василий Старовойтов in DotNetRuChat🍂
Есть экземплы?
источник

NK

ID:221868624 in DotNetRuChat🍂
Где-то у меня был, я писал шото подобное
источник

ВС

Василий Старовойтов in DotNetRuChat🍂
С событиями и делегатами
источник

NK

ID:221868624 in DotNetRuChat🍂
// так что там думать, просто в программе
public delegate MyDelegate();
// (чёто забыл как делегаты объявлять, утсал наверн)
public static class EventProvider
{
   public static event MyDelegate OnSomething;
   public static void Something() {
—------OnSomething();
   }
}
источник

NK

ID:221868624 in DotNetRuChat🍂
тогда при загрузке программы
PluginProvider.EventProvider.OnSomething += () { govno; };
источник

NK

ID:221868624 in DotNetRuChat🍂
ах да я забіл
источник

NK

ID:221868624 in DotNetRuChat🍂
отредактирую сообщение
источник

NK

ID:221868624 in DotNetRuChat🍂
Готово
источник

NK

ID:221868624 in DotNetRuChat🍂
Естественно можно даже наколупать дров и сделать так логгинг
источник

ВС

Василий Старовойтов in DotNetRuChat🍂
Кароч хз, надо вникнуть. У меня с событиями вяло
источник

ВС

Василий Старовойтов in DotNetRuChat🍂
И делегатами. Не самая легкая тема дотнета
источник

NK

ID:221868624 in DotNetRuChat🍂
public delegate VoidDelegate(string msg);
public class Log
{
   private string _pattern;
   private string _source;
   public static event VoidDelegate OnInfo;
   public Log(string source) {
—------_source = source;
   }
   public void Info(string msg) {
   —--File.WriteText("program.log", $"{DateTime.UtcNow() INFO@{_source}:{msg}");
—------OnInfo?();
   }
   
}
источник

NK

ID:221868624 in DotNetRuChat🍂
Неплохой логгинг
источник