// メッセージを順番に発行する
        private async UniTaskVoid PublishMessageAsync(
            IAsyncMessagePublisher publisher,
            CancellationToken ct)
        {
            // メッセージを発行する
            // すべての購読者での処理が完了すると次に進む
            await publisher.PublishAsync("Hello").ToUniTask(cancellationToken: ct);

            await publisher.PublishAsync("World").ToUniTask(cancellationToken: ct);

            await publisher.PublishAsync("Bye!").ToUniTask(cancellationToken: ct);
        }
        public MainWindowViewModel(IAsyncMessagePublisher messagePublisher)
        {
            MessagePublisher = messagePublisher;
            Message          = new ReactivePropertySlim <string>();

            AlertCommand = new AsyncReactiveCommand()
                           .WithSubscribe(async() =>
            {
                var alertMessage = new ConfirmMessage
                {
                    Title   = "Info",
                    Content = "Hello world",
                };
                await MessagePublisher.PublishAsync(alertMessage);
                Message.Value = $"{alertMessage.MessageBoxResult} が押されました。";
            });
        }