Esempio n. 1
0
        public object this[DtoField field]
        {
            get
            {
                try
                {
                    var wrapper = this.Values[field];
                    return(wrapper.GetValue(this));
                }
                catch (Exception ex)
                {
                    throw new InvalidOperationException(string.Format("Failed to get value for '{0}'.", field.JsonName), ex);
                }
            }
            set
            {
                try
                {
                    // convert...
                    var type  = field.DtoProperty.PropertyType;
                    var toSet = field.ConvertValueForSet(value);
                    //object toSet = null;
                    //if (value != null)
                    //{
                    //    if (type.IsEnum)
                    //    {
                    //        if (value is string)
                    //            toSet = Enum.Parse(field.DtoProperty.PropertyType, (string)value);
                    //        else
                    //            toSet = ConversionHelper.ChangeType(value, field.DtoProperty.PropertyType);
                    //    }
                    //    else
                    //        toSet = ConversionHelper.ChangeType(value, field.DtoProperty.PropertyType);
                    //}

                    // set...
                    var wrapper = this.Values[field];
                    wrapper.SetValue(this, toSet);
                }
                catch (Exception ex)
                {
                    throw new InvalidOperationException(string.Format("Failed to set value for '{0}'.\r\nValue: {1}", field.Name, value), ex);
                }
            }
        }
Esempio n. 2
0
 public static T GetValue <T>(this IDtoBase dto, DtoField field)
 {
     return(ConversionHelper.ChangeType <T>(dto[field]));
 }
Esempio n. 3
0
        //public IEnumerable<string> GetNames()
        //{
        //    return this.Values.Keys;
        //}

        protected TT GetValue <TT>(DtoField field)
        {
            return(ConversionHelper.ChangeType <TT>(this[field]));
        }