/// <summary> /// 根据前缀获取变量的模板所有者 /// </summary> /// <param name="template"></param> /// <param name="prefix"></param> /// <returns>如果prefix值为null则返回template的根模板.如果为空值.则为template.如果为#则返回template的父模板.否则返回对应Id的模板</returns> internal static Template GetOwnerTemplateByPrefix(Template template, string prefix) { if (prefix == string.Empty) { return(template); //前缀为空.则返回当前模板 } if (prefix == "#") { return(template.OwnerTemplate ?? template); //前缀为#.则返回父模板(如果父模板不存在则返回当前模板) } //取得根模板 while (template.OwnerTemplate != null) { template = template.OwnerTemplate; } //如果没有前缀.则返回根模板.否则返回对应Id的模板 return(prefix == null ? template : template.GetChildTemplateById(prefix)); }
/// <summary> /// 根据前缀获取变量的模板所有者 /// </summary> /// <param name="template"></param> /// <param name="prefix"></param> /// <returns>如果prefix值为null则返回template的根模板.如果为空值.则为template.如果为#则返回template的父模板.否则返回对应Id的模板</returns> internal static Template GetOwnerTemplateByPrefix(Template template, string prefix) { if (prefix == string.Empty) return template; //前缀为空.则返回当前模板 if (prefix == "#") return template.OwnerTemplate ?? template; //前缀为#.则返回父模板(如果父模板不存在则返回当前模板) //取得根模板 while (template.OwnerTemplate != null) template = template.OwnerTemplate; //如果没有前缀.则返回根模板.否则返回对应Id的模板 return prefix == null ? template : template.GetChildTemplateById(prefix); }