示例#1
0
        //初始化类型别名
        private static void InitTypeAliases(IObjectNamespace space, IObjectNamespaceSetting setting)
        {
            if (space == null || setting == null || setting.TypeAliases == null || setting.TypeAliases.Length <= 0)
            {
                return;
            }

            var aliases = space.TypeAliases;

            foreach (var typeSetting in setting.TypeAliases)
            {
                var typeName = typeSetting.TypeName;
                if (string.IsNullOrEmpty(typeName))
                {
                    continue;
                }
                var type = TypeHelper.CreateType(typeName, false);
                if (type == null)
                {
                    continue;
                }
                var name = typeSetting.Name;
                aliases.Add(name, type);
            }
        }
示例#2
0
        //初始化常量
        private void InitConstAliases(IObjectNamespace space, IObjectNamespaceSetting setting)
        {
            if (space == null || setting == null || setting.ConstAliases == null || setting.ConstAliases.Length <= 0)
            {
                return;
            }

            var aliases = space.ConstAliases;

            foreach (var constSetting in setting.ConstAliases)
            {
                var type = this.GetOrCreateType(constSetting.TypeName);
                if (type == null)
                {
                    continue;
                }
                var value = Convert.ChangeType(constSetting.Value, type);
                var name  = constSetting.Name;
                aliases.Add(name, value);
            }
        }
示例#3
0
        private static IObjectContainer AddSingletonObjectToObjectNamespace(string name, Type type, object instance, IObjectNamespace objectNamespace)
        {
            IObjectContainer container = new SingletonObjectContainer();

            container.Init(null, null);
            container.SetObject(instance, null);
            if (!string.IsNullOrEmpty(name))
            {
                objectNamespace.AddObject(name, container);
            }
            if (type != null)
            {
                objectNamespace.AddObject(type, container);
            }
            return(container);
        }