public void Add(Type type) { var mapping = type.InstantiateUsingParameterlessConstructor(); if (mapping is IMappingProvider) { log.FluentMappingDiscovered(type); Add((IMappingProvider)mapping); } else if (mapping is IIndeterminateSubclassMappingProvider) { log.FluentMappingDiscovered(type); Add((IIndeterminateSubclassMappingProvider)mapping); } else if (mapping is IFilterDefinition) { Add((IFilterDefinition)mapping); } else if (mapping is IExternalComponentMappingProvider) { log.FluentMappingDiscovered(type); Add((IExternalComponentMappingProvider)mapping); } else { throw new InvalidOperationException("Unsupported mapping type '" + type.FullName + "'"); } }
//PROTOTYPE1: ADDED public void Add(object mapping) { var type = mapping.GetType(); if (mapping is IMappingProvider) { log.FluentMappingDiscovered(type); Add((IMappingProvider)mapping); } else if (mapping is IIndeterminateSubclassMappingProvider) { log.FluentMappingDiscovered(type); Add((IIndeterminateSubclassMappingProvider)mapping); } else if (mapping is IFilterDefinition) { Add((IFilterDefinition)mapping); } else if (mapping is IExternalComponentMappingProvider) { log.FluentMappingDiscovered(type); Add((IExternalComponentMappingProvider)mapping); } else { throw new InvalidOperationException("Unsupported mapping type '" + type.FullName + "'"); } }
public void Add(Type type) { var mapping = type.InstantiateUsingParameterlessConstructor(); if (mapping is IMappingProvider) { if (mapping.GetType().BaseType != null && mapping.GetType().BaseType.IsGenericType) { if (mapping.GetType().BaseType.GetGenericTypeDefinition() == typeof(ClassMap <>)) { Log.FluentMappingDiscovered(type); Add((IMappingProvider)mapping); } else if (mapping.GetType().BaseType.GetGenericTypeDefinition() == typeof(SubclassMap <>)) { AddSubclassMap((IMappingProvider)mapping); } } } else { throw new InvalidOperationException("Unsupported mapping type '" + type.FullName + "'"); } }