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); }
public DynamicProperty(DynamicGetter getter, DynamicSetter setter) { Getter = getter; Setter = setter; }