public ChangePasswordTest()
 {
     // create a data visitor to cover sensitive data
     _visitor = default(UserModel).V()
                .ForEach <UserModel, string>(x => CoverSensitiveData(x))
                .Cache();
 }
        public FormatStringTest()
        {
            _yueluo = Yueluo.Create();
            var _ = _yueluo.FormatToString();

            _cachedObjectVisitor = _yueluo.V()
                                   .WithExtendObject <Yueluo, StringBuilder>()
                                   .ForEach((name, value, sb) => sb.AppendFormat("{0}:{1}{2}", name, value, Environment.NewLine))
                                   .Cache();
        }
        public CacheVisitorTest()
        {
            _yueluo = Yueluo.Create();
            var _ = _yueluo.FormatToString();

            _cachedObjectVisitor = _yueluo.V()
                                   .WithExtendObject <Yueluo, StringBuilder>()
                                   .ForEach((name, value, sb) => sb.AppendFormat("{0}:{1}{2}", name, value, Environment.NewLine))
                                   .Cache();

            _propertyInfos = typeof(Yueluo).GetProperties();
        }
 public static void Run <T, TExtend>(this ICachedObjectVisitor <T, TExtend> visitor, T obj, TExtend extendObj)
 {
     visitor.Action.Invoke(obj, extendObj);
 }
 public static void Run <T>(this ICachedObjectVisitor <T> visitor, T obj)
 {
     visitor.Action.Invoke(obj);
 }