Esempio n. 1
0
        public T Get <T>(IHttpHeaders headers)
        {
            var retVal = _activator.Activate <T>(null);

            foreach (var prop in retVal.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance))
            {
                if (prop.PropertyType.IsPrimitive || prop.PropertyType == typeof(string))
                {
                    string stringValue;
                    if (headers.TryGetByName(prop.Name, out stringValue))
                    {
                        var value = Convert.ChangeType(stringValue, prop.PropertyType);
                        prop.SetValue(retVal, value);
                    }
                }
                else
                {
                    var value = Get(prop.PropertyType, headers, prop.Name);
                    prop.SetValue(retVal, value);
                }
            }

            return(retVal);
        }
Esempio n. 2
0
 public static T Activate <T>(this IObjectActivator activator, Func <string, Type, object> argumentGetter)
 {
     return((T)activator.Activate(typeof(T), argumentGetter));
 }