コード例 #1
0
        public static Configuration AddConsole(this Configuration configuration)
        {
            // Check if another console already has been added
            var subscribers = (List <ISubscriber>)MessageSenderService.EnqueueSubject.Subscribers;

            subscribers.AddRange((List <ISubscriber>)MessageSenderService.ExecuteSubject.Subscribers);

            if (subscribers.Where(s => s is ConsoleSubscriber).Count() > 0)
            {
                throw new InvalidOperationException("Console already has been added.");
            }

            var consoleSubscriber = new ConsoleSubscriber();

            MessageSenderService.EnqueueSubject.Subscribe(consoleSubscriber);
            MessageSenderService.ExecuteSubject.Subscribe(consoleSubscriber);
            return(configuration);
        }
コード例 #2
0
ファイル: App.cs プロジェクト: lopesivan/samples
    public static void Main()
    {
        Console.WriteLine("\nDigite a mensagem a ser publicada");
        Console.WriteLine("Mensagem vazia e ENTER para sair");
        Console.WriteLine("\nMensagem:");

        string mensagem = null;

        Subscriber c = new ConsoleSubscriber();
        Subscriber f = new FormSubscriber();
        Subscriber b = new BrowserSubscriber();

        Publisher.Broadcast broadcast = new Publisher.Broadcast(c.Receive);
        broadcast += new Publisher.Broadcast(f.Receive);
        broadcast += new Publisher.Broadcast(b.Receive);

        do
        {
            mensagem = Console.ReadLine();

            broadcast(mensagem);
        }while(mensagem.Trim() != String.Empty);
    }