示例#1
0
        public IModelBinder GetBinder(ModelBinderProviderContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            var typeViewModel = new ReflectionTypeViewModel(context.Metadata.ModelType);

            if (!typeViewModel.IsA(typeof(IBehaviors <>)))
            {
                return(null);
            }

            return(new BinderTypeModelBinder(typeof(BehaviorsModelBinder)));
        }
示例#2
0
        private static void Configure <T>(ClassMap map)
        {
            map.ReferenceMaps.Clear();

            //http://stackoverflow.com/questions/1571022/how-would-i-know-if-a-property-is-a-generic-collection
            var membersToRemove = map.MemberMaps
                                  .Where(p => {
                // Remove non-properties. Coalesce only exposes properties.
                if (p.Data.Member.MemberType != System.Reflection.MemberTypes.Property)
                {
                    return(true);
                }

                var memberType = new ReflectionTypeViewModel(p.Data.Member.MemberType());
                return(memberType.IsA(typeof(ICollection <>)));
            })
                                  .ToArray();

            foreach (var pm in membersToRemove)
            {
                map.MemberMaps.Remove(pm);
            }
        }