//------------------------------------------------------------------------------ // 此代码版权(除特别声明或在XREF结尾的命名空间的代码)归作者本人若汝棋茗所有 // 源代码使用协议遵循本仓库的开源协议及附加协议,若本仓库没有设置,则按MIT开源协议授权 // CSDN博客:https://blog.csdn.net/qq_40374647 // 哔哩哔哩视频:https://space.bilibili.com/94253567 // Gitee源代码仓库:https://gitee.com/RRQM_Home // Github源代码仓库:https://github.com/RRQM // API首页:https://www.yuque.com/rrqm/touchsocket/index // 交流QQ群:234762506 // 感谢您的下载和使用 //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ namespace TouchSocket.Core { /// /// 配置文件基类 /// public class TouchSocketConfig : DependencyObject { //private bool built; private IContainer m_container; private IPluginsManager m_pluginsManager; //ConcurrentQueue> actions = new ConcurrentQueue>(); ///// ///// 添加构建委托,该委托会在时调用。 ///// ///// ///// //public void AddBuildAction(Delegate action,params object[] ps) //{ // actions.Enqueue(Tuple.Create(action,ps)) ; //} ///// ///// 构建配置 ///// //public void Build() //{ // if (!built) // { // built = true; // while (actions.TryDequeue(out var action)) // { // action.Item1.DynamicInvoke(action.Item2); // } // } //} /// /// 构造函数 /// public TouchSocketConfig() { SetContainer(new Container()); } /// /// IOC容器。 /// public IContainer Container => m_container; /// /// 使用插件 /// public bool IsUsePlugin { get; set; } /// /// 插件管理器 /// public IPluginsManager PluginsManager => m_pluginsManager; /// /// 设置注入容器。 /// /// /// public TouchSocketConfig SetContainer(IContainer value) { m_container = value; if (!value.IsRegistered(typeof(ILog))) { m_container.RegisterSingleton(); } SetPluginsManager(new PluginsManager(m_container)); return this; } /// /// 设置PluginsManager /// /// /// public TouchSocketConfig SetPluginsManager(IPluginsManager value) { m_pluginsManager = value; m_container.RegisterSingleton(value); return this; } /// /// 启用插件 /// /// public TouchSocketConfig UsePlugin() { IsUsePlugin = true; return this; } } }