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))); }
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); } }