public void CopyContent(object value)
 {
     foreach (var obj in (IEnumerable)value)
     {
         if (!TryAddToGraph(obj))
         {
             continue;
         }
         if (obj == null || Template.IsImmutable(obj.GetType()) || obj.GetType().GetTemplatingMode() == TemplatingMode.Copy)
         {
             AddChild(obj);
         }
         else
         {
             CreateChild(obj.GetType());
             CopyObjectOverride();
             AddChild();
         }
     }
 }
Esempio n. 2
0
        public static TemplatingMode GetTemplatingMode(this PropertyInfo property)
        {
            if (property == null)
            {
                throw new ArgumentNullException("property");
            }

            var attr = property.GetCustomAttribute <TemplatingAttribute>();

            if (attr == null)
            {
                // Check for some built-in templating modes
                if (IsTemplatingHidden(property))
                {
                    return(TemplatingMode.Hidden);
                }

                return(Template.IsImmutable(property.PropertyType)
                    ? TemplatingMode.Copy
                    : TemplatingMode.Default);
            }

            return(attr.Mode);
        }