Esempio n. 1
0
        public static void AddRouteValues(RouteValueDictionary routeValueDictionary, string routeName, object routeValue)
        {
            IModelUnbinder unbinder = DefaultModelUnbinder;

            if (routeValue != null)
            {
                unbinder = ModelUnbinders.FindUnbinderFor(routeValue.GetType()) ?? (ModelUnbinderProviders.FindUnbinderFor(routeValue.GetType()) ?? DefaultModelUnbinder);
            }
            unbinder.UnbindModel(routeValueDictionary, routeName, routeValue);
        }
        public virtual IModelUnbinder FindUnbinderFor(Type type)
        {
            IModelUnbinder resultUnbinder = null;
            Type           baseType       = null;

            foreach (var unbinder in _unbinders)
            {
                if (unbinder.Key.IsAssignableFrom(type))
                {
                    if ((baseType == null) || baseType.IsAssignableFrom(unbinder.Key))
                    {
                        resultUnbinder = unbinder.Value;
                        baseType       = unbinder.Key;
                    }
                }
            }
            return(resultUnbinder);
        }
Esempio n. 3
0
 static ModelUnbinderHelpers()
 {
     DefaultModelUnbinder = new DefaultModelUnbinder();
 }
 public virtual void Add <T>(IModelUnbinder <T> unbinder) where T : class
 {
     Add(typeof(T), new GenericModelUnbinderWrapper <T>(unbinder));
 }
 public virtual void Add(Type type, IModelUnbinder unbinder)
 {
     _unbinders[type] = unbinder;
 }
 public GenericModelUnbinderWrapper(IModelUnbinder <T> unbinder)
 {
     _unbinder = unbinder;
 }
Esempio n. 7
0
 static ModelUnbinderHelpers()
 {
     DefaultModelUnbinder = new DefaultModelUnbinder();
 }