public static void test10()
        {
            List <JustSomeClassWithMyAttribtute> myClassList =
                Enumerable.Repeat(new JustSomeClassWithMyAttribtute(), 10000000).ToList();
            object aux = 0;

            DynamicSetter.Init();

            var watch = new System.Diagnostics.Stopwatch();

            watch.Start();

            foreach (var obj in myClassList)
            {
                // DynamicSetter.Set(obj, "PropertyOne", 3);
                DynamicSetter.Set(obj, "PropertyThree", "hello");
            }
            watch.Stop();
            Console.WriteLine($"test 10 Execution Time: {watch.ElapsedMilliseconds} ms (Noah's version)");
        }
        public StructureProperty(StructurePropertyInfo info, DynamicGetter getter, DynamicSetter setter = null)
        {
            _getter = getter;
            _setter = setter;

            Parent = info.Parent;
            Name = info.Name;
            DataType = info.DataType;
            IsRootMember = info.Parent == null;
            IsReadOnly = _setter == null;
            UniqueMode = info.UniqueMode;

            var isSimpleOrValueType = DataType.IsSimpleType() || DataType.IsValueType;
            IsEnumerable = !isSimpleOrValueType && DataType.IsEnumerableType();
            IsElement = Parent != null && (Parent.IsElement || Parent.IsEnumerable);
            ElementDataType = IsEnumerable ? DataType.GetEnumerableElementType() : null;

            if (IsUnique && !isSimpleOrValueType)
                throw new PineConeException(ExceptionMessages.StructureProperty_Ctor_UniqueOnNonSimpleType);

            Path = PropertyPathBuilder.BuildPath(this);
        }
Exemple #3
0
 public DynamicProperty(DynamicGetter getter, DynamicSetter setter)
 {
     Getter = getter;
     Setter = setter;
 }