public Spesification(ITestOutputHelper outputHelper)
        {
            History = Given();
            Command = When();

            var sut           = new TAggregate();
            var store         = new SpecificationAggregateStore(sut);
            var snapshotStore = new SpesificationAggregateSnapshotStore();

            try
            {
                sut.Load(History);
                GetHandler(store, snapshotStore)(Command).GetAwaiter().GetResult();
            }
            catch (Exception e)
            {
                CaughtException = e;
            }

            RaisedEvents = store.RaisedEvents;
            Snapshots    = snapshotStore.GetSnapshotAsync <TAggregate>(null, sut.Id).Result;

            if (Snapshots != null)
            {
                outputHelper.WriteLine($"Snapshot:{Snapshots.AggregateId},{Snapshots.Version}");
            }

            if (CaughtException != null)
            {
                outputHelper.WriteLine($"Error : {CaughtException.ToString()}");
            }

            Print(outputHelper);
        }
Exemple #2
0
        public Spesification(ITestOutputHelper outputHelper)
        {
            History = Given();
            Command = When();

            var sut   = new TAggregate();
            var store = new SpecificationAggregateStore(sut);

            try
            {
                sut.Load(History);
                GetHandler(store)(Command).GetAwaiter().GetResult();
            }
            catch (Exception e)
            {
                CaughtException = e;
            }

            RaisedEvents = store.RaisedEvents;


            if (CaughtException != null)
            {
                outputHelper.WriteLine($"Error : {CaughtException.ToString()}");
            }

            Print(outputHelper);
        }
Exemple #3
0
        public Specification(ITestOutputHelper output)
        {
            _output = output;

            History = Given();

            Command = When();

            var sut = new TAggregate();

            sut.Load(History);

            var store = SpecificationAggregateStore.For(sut);

            try
            {
                GetHandler(store)(Command).GetAwaiter().GetResult();
            }
            catch (Exception exception)
            {
                CaughtException = exception;
            }

            RaisedEvents = store.RaisedEvents;

            Print();
        }
        public async Task Test()
        {
            InvokeAsyncHandlersTestClass obj = new InvokeAsyncHandlersTestClass();
            var parameters = new object[] { };

            Assert.Equal(new BoolValue()
            {
                Value = true
            }, await GetHandler(typeof(bool))(obj, parameters));
            Assert.Equal(new SInt32Value()
            {
                Value = -32
            }, await GetHandler(typeof(int))(obj, parameters));
            Assert.Equal(new UInt32Value()
            {
                Value = 32
            }, await GetHandler(typeof(uint))(obj, parameters));
            Assert.Equal(new SInt64Value()
            {
                Value = -64
            }, await GetHandler(typeof(long))(obj, parameters));
            Assert.Equal(new UInt64Value()
            {
                Value = 64
            }, await GetHandler(typeof(ulong))(obj, parameters));
            Assert.Equal(new StringValue()
            {
                Value = "AElf"
            }, await GetHandler(typeof(string))(obj, parameters));
            Assert.Equal(new BytesValue()
            {
                Value = ByteString.CopyFrom(new byte[] { 0x1, 0x2, 0x3 })
            }, await GetHandler(typeof(byte[]))(obj, parameters));
        }
Exemple #5
0
 /// <summary>
 /// When implemented by inheriting classes, this method will do the actual work of resolving
 /// the requested service instance.
 /// </summary>
 /// <param name="serviceType">Type of instance requested.</param>
 /// <param name="key">Name of registered service you want. May be null.</param>
 /// <returns>The requested service instance.</returns>
 protected override object DoGetInstance(Type serviceType, string key)
 {
     return(key == null
                ? GetHandler(serviceType)()
                : (serviceType == null)
                      ? GetInstance(key)
                      : GetInstance(key, serviceType.GetGenericArguments()));
 }
Exemple #6
0
        public NameTable(Dictionary <string, Named> baseLvl, TypingPolicies typing, RetrievalPolicies retrieval)
        {
            _payload = new List <Dictionary <string, Named> >();
            _payload.Add(baseLvl);

            switch (typing)
            {
            case TypingPolicies.STRONG:
                HandleSettingConflict = EnforceTyping;
                break;

            case TypingPolicies.WEAK:
                HandleSettingConflict = SetValueAndReturnTrue;
                break;
            }

            switch (retrieval)
            {
            case RetrievalPolicies.STRICT:
                HandleDeclareConflict = ReturnFalse;
                HandleMissingVariable = PassThrough;
                break;

            case RetrievalPolicies.LOOSE:
                HandleDeclareConflict = SetValueAndReturnTrue;
                HandleMissingVariable = ProvideAndReturnTrue;
                break;
            }
        }
Exemple #7
0
        public void Search_For_User_By_Id_No_User_Existent()
        {
            var getHandler = new GetHandler("../../../../TestFrameworklessApp/UnitTests/MultipleUserDatabase.json");
            var exception  = Assert.Throws <ArgumentException>(() => getHandler.GetUserById("4"));

            Assert.Equal("User does not exist", exception.Message);
        }
Exemple #8
0
        public void Check_If_Database_Is_Empty_Return_Error()
        {
            var getHandler = new GetHandler("../../../../TestFrameworklessApp/UnitTests/EmptyDatabaseTest.json");
            var exception  = Assert.Throws <ArgumentException>(() => getHandler.GetAllUsers());

            Assert.Equal("Database is empty", exception.Message);
        }
Exemple #9
0
        public void Get_All_Users_In_Database_Containing_Multiple_Users()
        {
            var getHandler = new GetHandler("../../../../TestFrameworklessApp/UnitTests/MultipleUserDatabase.json");
            var userList   = new List <User>();

            userList.Add(new User("Bob", "1"));
            userList.Add(new User("Sally", "2"));
            userList.Add(new User("Sam", "3"));

            var  actual = getHandler.GetAllUsers();
            bool result = true;

            if (actual.Count == userList.Count)
            {
                for (int i = 0; i < actual.Count; i++)
                {
                    if (actual[i].Name != userList[i].Name || actual[i].Id != userList[i].Id)
                    {
                        result = false;
                    }
                }
            }
            else
            {
                result = false;
            }

            Assert.True(result);
        }
Exemple #10
0
        internal static Accessors GetAccessors(FieldInfo member)
        {
            if (AccessorsCacheCheck.PropertiesDisabled)
            {
                return(new Accessors(member.GetValue, member.SetValue));
            }
            Accessors accessors;

            lock (Fields)
            {
                if (Fields.TryGetValue(member, out accessors))
                {
                    return(accessors);
                }
            }

            GetHandler getter = DynamicMethodCompiler.CreateGetHandler(member.ReflectedType, member) ?? member.GetValue;
            SetHandler setter = DynamicMethodCompiler.CreateSetHandler(member.ReflectedType, member) ?? member.SetValue;

            accessors = new Accessors(getter, setter);

            lock (Fields)
                Fields[member] = accessors;

            return(accessors);
        }
Exemple #11
0
        internal static Accessors GetAccessors(PropertyInfo member)
        {
            if (AccessorsCacheCheck.PropertiesDisabled)
            {
                return(new Accessors(inst => Helpers.GetPropertyValue(member, inst), (inst, v) => member.SetValue(inst, v, null)));
            }
            Accessors accessors;

            lock (Properties)
            {
                if (Properties.TryGetValue(member, out accessors))
                {
                    return(accessors);
                }
            }

            GetHandler getter = DynamicMethodCompiler.CreateGetHandler(member.ReflectedType, member) ?? (inst => Helpers.GetPropertyValue(member, inst));
            SetHandler setter = DynamicMethodCompiler.CreateSetHandler(member.ReflectedType, member) ?? ((inst, v) => member.SetValue(inst, v, null));

            accessors = new Accessors(getter, setter);

            lock (Properties)
                Properties[member] = accessors;

            return(accessors);
        }
        public static GetHandler CreateGetHandler(Type type, PropertyInfo propertyInfo)
        {
            lock (AppInfo.GetDictionary)
            {
                if (AppInfo.GetDictionary.ContainsKey(propertyInfo))
                {
                    return(AppInfo.GetDictionary[propertyInfo]);
                }
                else
                {
                    MethodInfo    getMethodInfo = propertyInfo.GetGetMethod(true);
                    DynamicMethod dynamicGet    = CreateGetDynamicMethod(type);
                    ILGenerator   getGenerator  = dynamicGet.GetILGenerator();

                    getGenerator.Emit(OpCodes.Ldarg_0);
                    getGenerator.Emit(OpCodes.Call, getMethodInfo);
                    Box(getMethodInfo.ReturnType, getGenerator);
                    getGenerator.Emit(OpCodes.Ret);

                    GetHandler getHandler = (GetHandler)dynamicGet.CreateDelegate(typeof(GetHandler));
                    AppInfo.GetDictionary.Add(propertyInfo, getHandler);
                    return(getHandler);
                }
            }
        }
Exemple #13
0
        public void Search_For_User_By_Id()
        {
            var  getHandler = new GetHandler("../../../../TestFrameworklessApp/UnitTests/MultipleUserDatabase.json");
            User actualUser = getHandler.GetUserById("3");

            Assert.Equal("Sam", actualUser.Name);
        }
Exemple #14
0
 public MemberMap(FieldInfo fieldInfo)
 {
     MemberInfo = fieldInfo;
     Type       = fieldInfo.FieldType;
     Getter     = createGetHandler(fieldInfo);
     Setter     = createSetHandler(fieldInfo);
 }
Exemple #15
0
 public MemberMap(PropertyInfo propertyInfo)
 {
     MemberInfo = propertyInfo;
     Type       = propertyInfo.PropertyType;
     Getter     = createGetHandler(propertyInfo);
     Setter     = createSetHandler(propertyInfo);
 }
        public static ChunkedOperation Create(HttpServer server, ChunkedOperationType type, bool sendAsync)
        {
            var(flags, status, error) = GetParameters(type);
            var handler = new GetHandler(ChunkTypeName(type), ChunkContent(type));

            return(new ChunkedOperation(server, handler, type, sendAsync, flags, status, error));
        }
Exemple #17
0
        public void Get_All_Users_In_Database_Containing_One_User()
        {
            var userList = new List <User>();

            userList.Add(new User("Bob", "1"));

            var getHandler = new GetHandler("../../../../TestFrameworklessApp/UnitTests/SingleUserDatabaseTest.json");

            var actual = getHandler.GetAllUsers();

            bool result = true;

            if (userList.Count == actual.Count)
            {
                foreach (var user in actual)
                {
                    if (user.Name != "Bob" || user.Id != "1")
                    {
                        result = false;
                    }
                }
            }
            else
            {
                result = false;
            }

            Assert.True(result);
        }
Exemple #18
0
 public override Object GetValue(Object obj)
 {
     if (GetHandler == null)
     {
         throw new InvalidOperationException("不支持GetValue操作!");
     }
     return(GetHandler.Invoke(obj));
 }
Exemple #19
0
        void HandleGet(RequestContext request)
        {
            string tmpString = GetHandler.HandleByCommand(request);

            Console.WriteLine(tmpString);

            ResponseHandler.Status200(Writer, tmpString);
        }
Exemple #20
0
        public static Object GetFieldValue(Object obj, FieldInfo field)
        {
            //创建Set委托
            GetHandler getter = DynamicMethodCompiler.CreateGetHandler(obj.GetType(), field);

            //获取字段值
            return(getter(obj));
        }
Exemple #21
0
        public static Object GetPropertyValue(Object obj, PropertyInfo property)
        {
            //创建Set委托
            GetHandler getter = DynamicMethodCompiler.CreateGetHandler(obj.GetType(), property);

            //获取属性值
            return(getter(obj));
        }
        public FieldAccessor(FieldInfo fieldInfo) : base(fieldInfo.Name, fieldInfo.FieldType)
        {
            _fieldInfo  = fieldInfo;
            _getHandler = DelegateFactory.CreateGet(fieldInfo);
            _setHandler = DelegateFactory.CreateSet(fieldInfo);

            _isInternal = _fieldInfo.IsPrivate || _fieldInfo.IsFamily;
        }
Exemple #23
0
        public async Task HandleRequestAsync_ValidRequest_VehicleDataFoundReturnsResponseWithExpectedContent()
        {
            // Arrange

            const string vin = "VIN";

            var data = new VehicleData
            {
                CustomerId   = 1,
                VIN          = "VIN",
                Make         = "BMW",
                Model        = "118d",
                ModelYear    = 2016,
                ImportedDate = DateTime.UtcNow
            };

            var fakeValidateVIN = A.Fake <IValidateVIN>();

            A.CallTo(() => fakeValidateVIN.IsValid(vin)).Returns(true);

            var fakeVehicleDataService = A.Fake <IVehicleDataService>();

            A.CallTo(() => fakeVehicleDataService.GetVehicleDataAsync(vin)).Returns(data);

            IServiceProvider sp = new ServiceCollection()
                                  .AddSingleton(fakeValidateVIN)
                                  .AddSingleton(fakeVehicleDataService)
                                  .BuildServiceProvider();

            var context = A.Fake <ILambdaContext>();

            A.CallTo(() => context.Logger).Returns(A.Fake <ILambdaLogger>());

            APIGatewayProxyRequest dummyRequestEvent = new APIGatewayProxyRequest
            {
                PathParameters = new Dictionary <string, string> {
                    { "id", vin }
                }
            };

            var sut = new GetHandler(sp);

            // Act

            APIGatewayProxyResponse result = await sut.HandleRequestAsync(dummyRequestEvent, context);

            ResponseBody responseBody = JsonConvert.DeserializeObject <ResponseBody>(result.Body);

            // Assert

            Assert.Equal(data.CustomerId, responseBody.CustomerId);
            Assert.Equal(data.VIN, responseBody.VIN);
            Assert.Equal(data.Make, responseBody.Make);
            Assert.Equal(data.Model, responseBody.Model);
            Assert.Equal(data.ModelYear, responseBody.ModelYear);
            Assert.Equal(data.ImportedDate, responseBody.ImportedDate);
        }
Exemple #24
0
 public override void Bind(GetHandler get, SourceType src)
 {
     //1.get:获取数据的方法指针;src:当前提供get的源类型[DataBase|Entity|Collection]
     //
     PUID       = Eval <int>(get("PUID"));
     LK_OBJT    = Eval <int>(get("LK_OBJT"));
     LK_OBJT_ID = Eval <int>(get("LK_OBJT_ID"));
     LK_Operate = Eval <string>(get("LK_Operate"));
 }
Exemple #25
0
        public override Object GetValue(Object obj)
        {
            // 在编译时写入并且不能更改的字段,不能快速反射,主要因为取不到FieldHandle。枚举中的静态字段。
            if (Field.IsLiteral)
            {
                return(Field.GetValue(obj));
            }

            return(GetHandler.Invoke(obj));
        }
Exemple #26
0
 public InterpolateFromCurrent(InterpolateHandler InterpolateFunction, ITimer timer,
                               SetHandler SetCallback, GetHandler GetCallback)
 {
     this.InterpolateFunction = InterpolateFunction;
     this.timer = timer;
     timer.SubscribeToTicked(TimerTicked);
     timer.SubscribeToFinished(TimerFinished);
     Set = SetCallback;
     Get = GetCallback;
 }
Exemple #27
0
        public static Dictionary <string, IRequestHandler> GetRequestHandlers(IScheduler scheduler, IMemCache cache)
        {
            var helpers       = new RequestConverters(scheduler);
            var getHandler    = new GetHandler(helpers, cache, scheduler);
            var mutateHandler = new MutateHandler(helpers, cache, scheduler);

            return(new Dictionary <string, IRequestHandler>
            {
                { "get", getHandler }, { "gets", getHandler }, { "set", new SetHandler(helpers, cache) }, { "append", new AppendHandler(helpers, cache) }, { "prepend", new PrependHandler(helpers, cache) }, { "add", new AddHandler(helpers, cache) }, { "replace", new ReplaceHandler(helpers, cache) }, { "cas", new CasHandler(helpers, cache) }, { "stats", new StatsHandler() }, { "delete", new DeleteHandler(helpers, cache) }, { "flush_all", new FlushHandler(cache, scheduler) }, { "quit", new QuitHandler() }, { "exception", new ExceptionHandler() }, { "version", new VersionHandler() }, { "touch", new TouchHandler(helpers, cache) }, { "incr", mutateHandler }, { "decr", mutateHandler },
            });
        }
Exemple #28
0
        public HttpResponseMessage Get(int id)
        {
            var handler  = new GetHandler();
            var response = handler.Handle(id);

            if (handler.Errors == null || handler.Errors.Count < 1)
            {
                return(Request.CreateResponse(HttpStatusCode.OK, response.ReportComponentDtos[0]));
            }
            return(Request.CreateResponse(HttpStatusCode.BadRequest, handler.Errors));
        }
        public Specification()
        {
            History = Given();
            Command = When();

            var sut = new TAggregate();

            sut.Load(History);
            var store = SpecificationAggregateStore.For(sut);

            try
            {
                GetHandler(store)(Command).Wait();
            }
            catch (Exception exception)
            {
                CaughtException = exception;
            }

            RaisedEvents = store.RaisedEvents;
        }
Exemple #30
0
        /// <summary>
        /// 绑定委托数据
        /// </summary>
        /// <param name="get">委托数据源</param>
        /// <param name="src">源类型</param>
        public override void Bind(GetHandler get, SourceType src)
        {
            PGID = Eval<int>(get("PGID"));
            PG_CN_Name = Eval<string>(get("PG_CN_Name"));
            PG_EN_Name = Eval<string>(get("PG_EN_Name"));
            PG_Order_Index = Eval<int>(get("PG_Order_Index"));

            LK_Operate = Eval<string>(get("LK_Operate"));
            LK_OBJT = Eval<int>(get("LK_OBJT"));
            P_Express = Eval<PExpress>(get("P_Express"));

            base.Bind(get, src);
        }
Exemple #31
0
        /// <summary>
        /// Initializes the property and generates the implementation for getter and setter methods.
        /// </summary>
        public FastPropertyInfo(PropertyInfo property)
        {
            this.property = property;

            if (property.CanWrite)
            {
                setValueImpl = DynamicMethodCompiler.CreateSetHandler(property.DeclaringType, property);
            }

            if (property.CanRead)
            {
                getValueImpl = DynamicMethodCompiler.CreateGetHandler(property.DeclaringType, property);
            }
        }
 public override void Bind(GetHandler get, SourceType src)
 {
     //1.get:获取数据的方法指针;src:当前提供get的源类型[DataBase|Entity|Collection]
     //
     _B2CGoodsID = Eval<int>(get("B2CGoodsID"));
     _Id = Eval<int>(get("id"));
     _Class_id = Eval<int>(get("class_id"));
     _B2CClassID = Eval<string>(get("B2CClassID"));
     _B2CClassName = Eval<string>(get("B2CClassName"));
     _Goodstitle = Eval<string>(get("goodstitle"));
     _Goodstitle2 = Eval<string>(get("goodstitle2"));
     _Goodspic = Eval<string>(get("goodspic"));
     _Brandid = Eval<int>(get("brandid"));
     _Brandname = Eval<string>(get("brandname"));
     _Goodstxt = Eval<string>(get("goodstxt"));
     _Goodsstate = Eval<short>(get("goodsstate"));
     _Keywords = Eval<string>(get("keywords"));
     _Unit = Eval<string>(get("unit"));
     _BeginTime = Eval<DateTime>(get("BeginTime"));
     _EndTime = Eval<DateTime>(get("EndTime"));
     _MemberPric1 = Eval<decimal>(get("MemberPric1"));
     _MemberPric2 = Eval<decimal>(get("MemberPric2"));
     _MemberPric3 = Eval<decimal>(get("MemberPric3"));
     _MemberPric4 = Eval<decimal>(get("MemberPric4"));
     _MemberPric5 = Eval<decimal>(get("MemberPric5"));
     _MemberPric6 = Eval<decimal>(get("MemberPric6"));
     _Pricescosts = Eval<decimal>(get("pricescosts"));
     _Listprice = Eval<decimal>(get("listprice"));
     _Minpric = Eval<decimal>(get("minpric"));
     _Maxpric = Eval<decimal>(get("maxpric"));
     _BarCode = Eval<long>(get("BarCode"));
     _Weight = Eval<int>(get("Weight"));
     _WeightBz = Eval<int>(get("WeightBz"));
     _ServiceNote = Eval<string>(get("ServiceNote"));
     _SaleCount = Eval<int>(get("SaleCount"));
     _IsInsured = Eval<short>(get("IsInsured"));
     _InsuredScale = Eval<short>(get("InsuredScale"));
     _WarrantyType = Eval<short>(get("WarrantyType"));
     _WarrantyLimit = Eval<int>(get("WarrantyLimit"));
     _RetreatRule = Eval<short>(get("RetreatRule"));
     _ProductType = Eval<short>(get("ProductType"));
     _IsPost = Eval<short>(get("IsPost"));
     _IsPreferential = Eval<short>(get("IsPreferential"));
     _IsBind = Eval<short>(get("IsBind"));
     _IsNotdiscount = Eval<short>(get("IsNotdiscount"));
     _IsPromotion = Eval<short>(get("IsPromotion"));
     _IsaretGift = Eval<short>(get("IsaretGift"));
     _IsGift = Eval<short>(get("IsGift"));
     _BuyNumber = Eval<int>(get("BuyNumber"));
     _CollectNumber = Eval<int>(get("CollectNumber"));
     _BrowsingNumber = Eval<int>(get("BrowsingNumber"));
     _OrderID = Eval<int>(get("OrderID"));
     _IsExchange = Eval<short>(get("IsExchange"));
     _IntegralVal = Eval<int>(get("IntegralVal"));
     _MofifyTime = Eval<DateTime>(get("MofifyTime"));
     _Specjson = Eval<string>(get("specjson"));
     _Expselected = Eval<string>(get("expselected"));
     _Accessory = Eval<string>(get("accessory"));
     _Kzs0 = Eval<string>(get("kzs0"));
     _Kzv0 = Eval<string>(get("kzv0"));
     _Kzs1 = Eval<string>(get("kzs1"));
     _Kzv1 = Eval<string>(get("kzv1"));
     _Kzs2 = Eval<string>(get("kzs2"));
     _Kzv2 = Eval<string>(get("kzv2"));
     _Kzs3 = Eval<string>(get("kzs3"));
     _Kzv3 = Eval<string>(get("kzv3"));
     _Kzs4 = Eval<string>(get("kzs4"));
     _Kzv4 = Eval<string>(get("kzv4"));
     _Kzs5 = Eval<string>(get("kzs5"));
     _Kzv5 = Eval<string>(get("kzv5"));
     _Kzs6 = Eval<string>(get("kzs6"));
     _Kzv6 = Eval<string>(get("kzv6"));
     _Kzs7 = Eval<string>(get("kzs7"));
     _Kzv7 = Eval<string>(get("kzv7"));
     _Kzs8 = Eval<string>(get("kzs8"));
     _Kzv8 = Eval<string>(get("kzv8"));
     _Kzs9 = Eval<string>(get("kzs9"));
     _Kzv9 = Eval<string>(get("kzv9"));
     _DaySales = Eval<int>(get("DaySales"));
     _SevenDaySales = Eval<int>(get("SevenDaySales"));
     _MonthSales = Eval<int>(get("MonthSales"));
     _IsSnapup = Eval<short>(get("IsSnapup"));
     _ConsultCount = Eval<int>(get("ConsultCount"));
     _EvaluateAvg = Eval<float>(get("EvaluateAvg"));
     _EvaluateCount = Eval<int>(get("EvaluateCount"));
     _CarinfoTitle = Eval<string>(get("CarinfoTitle"));
     _Specfzids = Eval<string>(get("specfzids"));
     _Usableintegral = Eval<int>(get("usableintegral"));
     _OrgDesc = Eval<string>(get("OrgDesc"));
     _FineLevel = Eval<short>(get("FineLevel"));
     _Origin = Eval<string>(get("origin"));
     _Newproduct = Eval<short>(get("newproduct"));
     _Hotsell = Eval<short>(get("hotsell"));
     _Functionid = Eval<int>(get("functionid"));
     _Functionname = Eval<string>(get("functionname"));
     _ExtGoodsID = Eval<int>(get("ExtGoodsID"));
     _Priceshy = Eval<decimal>(get("priceshy"));
     _Pricesdx = Eval<decimal>(get("pricesdx"));
     _Priceszd = Eval<decimal>(get("priceszd"));
     _Caroutput = Eval<string>(get("Caroutput"));
     _Caryear = Eval<string>(get("Caryear"));
     _Carinfo = Eval<string>(get("Carinfo"));
     _CarBrand = Eval<string>(get("CarBrand"));
     _CarinfonfID = Eval<string>(get("CarinfonfID"));
     _CarinfoID = Eval<string>(get("CarinfoID"));
     _CarBrandID = Eval<string>(get("CarBrandID"));
     _Cpids = Eval<string>(get("Cpids"));
     _GoodsTag = Eval<string>(get("GoodsTag"));
     _TaobaoTitle = Eval<string>(get("TaobaoTitle"));
     _TaobaoContent = Eval<string>(get("TaobaoContent"));
 }