//初始化类型别名 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); } }
//初始化常量 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); } }
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); }