Beispiel #1
0
        public static DynamicTag Tag_DynamicAnyProcessor(DynamicTag inputObject, TagData data)
        {
            string         tagName      = data.Bits[data.cInd].Key;
            TemplateObject tagObject    = inputObject.Internal;
            TagType        originalType = tagObject.GetTagType(data.TagSystem.Types);
            TagType        objectType   = originalType;
            TagHelpInfo    tagHelper;

            while (!objectType.TagHelpers.TryGetValue(tagName, out tagHelper))
            {
                if (objectType.SubType == null)
                {
                    throw data.Error("Invalid sub-tag '"
                                     + TextStyle.Separate + tagName + TextStyle.Base + "' at sub-tag index "
                                     + TextStyle.Separate + data.cInd + TextStyle.Base + " for type '"
                                     + TextStyle.Separate + originalType.TypeName + TextStyle.Base
                                     + (tagName.Trim().Length == 0 ? "' (stray '.' dot symbol?)!" : "' (sub-tag doesn't seem to exist)!"));
                }
                tagObject  = objectType.GetNextTypeDown(tagObject);
                objectType = objectType.SubType;
            }
            return(new DynamicTag(tagHelper.RunTagLive(tagObject, data)));
        }