Ejemplo n.º 1
0
Archivo: Dict.cs Proyecto: abmiues/Core
        /// <summary>
        /// 使用点(.)来访问深度字典,并移除其中指定的值
        /// </summary>
        /// <param name="dict">规定字典</param>
        /// <param name="key">键,支持使用点(.)来进行深度访问</param>
        public static bool Remove(IDictionary <string, object> dict, string key)
        {
            Guard.Requires <ArgumentNullException>(dict != null);
            Guard.Requires <ArgumentNullException>(key != null);

            var keyArr = Arr.Reverse(key.Split('.'));

            return(RemoveValueByDepthArray(dict, ref keyArr));
        }
Ejemplo n.º 2
0
Archivo: Dict.cs Proyecto: abmiues/Core
        /// <summary>
        /// 使用点(.)来访问深度字典,并为其指定位置设定一个值
        /// </summary>
        /// <param name="dict">规定字典</param>
        /// <param name="key">键,支持使用点(.)来进行深度访问</param>
        /// <param name="val">设定的值</param>
        public static void Set(IDictionary <string, object> dict, string key, object val)
        {
            Guard.Requires <ArgumentNullException>(dict != null);
            Guard.Requires <ArgumentNullException>(key != null);

            var keyArr = Arr.Reverse(key.Split('.'));

            SetValueByDepthArray(dict, ref keyArr, val);
        }
Ejemplo n.º 3
0
 /// <summary>
 /// 加载以代码形式提供的服务提供者
 /// </summary>
 private static void LoadCodeProvider()
 {
     foreach (var provider in Arr.Reverse(Providers.ServiceProviders))
     {
         if (!App.IsRegisted(provider))
         {
             App.Register(provider);
         }
     }
 }
Ejemplo n.º 4
0
Archivo: Dict.cs Proyecto: abmiues/Core
        /// <summary>
        /// 使用点(.)来访问深度字典
        /// </summary>
        /// <param name="dict">规定字典</param>
        /// <param name="key">键,支持使用点(.)来进行深度访问</param>
        /// <param name="def">默认值</param>
        /// <returns>字典值</returns>
        public static object Get(IDictionary <string, object> dict, string key, object def = null)
        {
            if (dict == null)
            {
                return(def);
            }

            if (string.IsNullOrEmpty(key))
            {
                return(dict);
            }

            var keyArr = Arr.Reverse(key.Split('.'));

            return(GetValueByDepthArray(dict, ref keyArr) ?? def);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 加载Unity组件的服务提供者
        /// </summary>
        private static void LoadUnityComponentProvider()
        {
            var root = App.Make <Component>();

            if (root == null)
            {
                return;
            }

            var providers = root.GetComponentsInChildren <IServiceProvider>();

            foreach (var provider in Arr.Reverse(providers))
            {
                if (provider == null)
                {
                    continue;
                }
                App.Register(provider);
            }
        }
Ejemplo n.º 6
0
 /// <summary>
 /// 获取引导程序
 /// </summary>
 /// <returns>引导脚本</returns>
 protected virtual IBootstrap[] GetBootstraps()
 {
     return(Arr.Reverse(Arr.Merge(GetComponents <IBootstrap>(), Bootstraps.Bootstrap)));
 }