当前位置: 首页>>代码示例>>C#>>正文


C# Bot.Dispose方法代码示例

本文整理汇总了C#中Bot.Dispose方法的典型用法代码示例。如果您正苦于以下问题:C# Bot.Dispose方法的具体用法?C# Bot.Dispose怎么用?C# Bot.Dispose使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Bot的用法示例。


在下文中一共展示了Bot.Dispose方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Main


//.........这里部分代码省略.........
            }

            // Add file logging
            FileTarget fileTarget = new FileTarget();
            fileTarget.Layout =
                "${longdate}|${level:uppercase=true}|${logger}|${message}|${exception:maxInnerExceptionLevel=5}";
            fileTarget.FileName = Path.Combine(BasePath, _logFile);
            LoggingRule fileRule = new LoggingRule("*", LogLevel.Warn, fileTarget);
            LogManager.Configuration.AddTarget("File", fileTarget);
            LogManager.Configuration.LoggingRules.Add(fileRule);
            LogManager.Configuration.Reload();

            // Bootstrap dependencies
            _bootstrapper = new AppBootstrapper();

            // Open configuration
            IStorageManager storage = CompositionManager.Get<IStorageManager>(new NamedParameter("path",
                Path.Combine(BasePath, _storagePath)), new NamedParameter("extension", _storageExtension),
                new NamedParameter("globalFile", _globalStorageFile));

            // Create command manager
            ICommandManager command = CompositionManager.Get<ICommandManager>();
            command.Add(CommandBuilder.CreateConverter<String, ICommand, ConversionContext>(
                (str, context) => context.Bot.Command.GetUnambigousCommand(str))
            );
            command.Add(CommandBuilder.CreateConverter<String, IEnumerable<ICommand>, ConversionContext>(
                (str, context) => context.Bot.Command.GetUnambigousCommands(str))
            );
            command.Add(CommandBuilder.CreateConverter<String, IPlugin, ConversionContext>(
                (str, context) => context.Bot.Plugin.Get(str))
            );
            command.Add(CommandBuilder.CreateConverter<String, IChannel, ConversionContext>(
                (str, context) => context.Message.Connection.GetExistingChannel(str))
            );
            command.Add(CommandBuilder.CreateConverter<String, IUser, ConversionContext>(
                (str, context) => context.Message.Connection.GetExistingUser(str))
            );
            command.Add(CommandBuilder.CreateConverter<String, IChannelUser, ConversionContext>(
                (str, context) => (context.Message.Receiver as IChannel).GetUser(str))
            );
            command.Add(CommandBuilder.CreateConverter<String, IdentityMask, ConversionContext>(
                (str, context) => IdentityMask.Parse(str))
            );
            command.Add(CommandBuilder.CreateConverter<String, IIdentity, ConversionContext>(
                (str, context) => Identity.Parse(str))
            );
            command.Add(CommandBuilder.CreateConverter<String, IBotGroup, ConversionContext>(
                (str, context) => context.Bot.Authentication.GetGroup(str))
            );
            command.Add(CommandBuilder.CreateConverter<String, IBotUser, ConversionContext>(
                (str, context) => context.Bot.Authentication.GetUser(str))
            );

            // Create authentication manager
            IAuthenticationManager authentication = CompositionManager.Get<IAuthenticationManager>();

            // Create permission manager
            IPermissionManager permission = CompositionManager.Get<IPermissionManager>();

            // Create plugin manager
            IPluginManager plugin = CompositionManager.Get<IPluginManager>();

            // Create bot
            IClient client = CompositionManager.Get<IClient>();
            Bot bot = new Bot(client, storage, command, plugin, authentication, permission);
            GetAssemblies().Do(x => plugin.Load(x, bot));
            bot.Init();
            if(bot.Connections.IsEmpty())
            {
                Console.WriteLine("No connections have been set up yet, adding a connection now.");

                Console.WriteLine("Server address?");
                String address = Console.ReadLine();
                Console.WriteLine("Server port?");
                ushort port = Convert.ToUInt16(Console.ReadLine());

                Console.WriteLine("Nickname?");
                String nickname = Console.ReadLine();
                Console.WriteLine("Username?");
                String username = Console.ReadLine();
                Console.WriteLine("Real name?");
                String realname = Console.ReadLine();
                Console.WriteLine("Password? (leave empty for no password)");
                String password = Console.ReadLine();

                bot.Connect(address, port, nickname, username, realname, password);
            }

            // Loop
            bool run = true;
            Console.CancelKeyPress += (s, e) => { e.Cancel = true; run = false; };
            while(run)
            {
                Thread.Sleep(50);
            }

            // Clean up
            bot.Dispose();
            storage.Dispose();
        }
开发者ID:Gohla,项目名称:Veda,代码行数:101,代码来源:Program.cs


注:本文中的Bot.Dispose方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。