コード例 #1
0
        public ChangeTracker(object target)
        {
            Target = target;

            var type = Target.GetType();

            lock (FieldCache) {
                if (!FieldCache.ContainsKey(type))
                {
                    FieldCache.Add(type, type.GetFields(BindingFlags.Public | BindingFlags.Instance | BindingFlags.FlattenHierarchy).ToList());
                }
            }

            Fields = FieldCache[type].Select(each => new ChangeTrackerField(each)).ToList();
            GetChanges();
        }