public void AddTypeHandler(Type type, IModuleTypeHandler typeHandler) { if (type == null) throw new ArgumentNullException("type"); if (typeHandler == null) throw new ArgumentNullException("typeHandler"); if (typeHandlerMap == null) typeHandlerMap = new Dictionary<Type, IModuleTypeHandler>(); typeHandlerMap[type] = typeHandler; }
public ModuleInfo(Type moduleType, IModuleTypeHandler typeHandler) { if (moduleType == null) { throw new ArgumentNullException("moduleType"); } if (typeHandler == null) { throw new ArgumentNullException("typeHandler"); } ModuleType = moduleType; this.typeHandler = typeHandler; properties = typeHandler.GetProperties(moduleType); if (properties.Length == 0) { propertyNames = emptyPropertyNames; defaultValues = emptyDefaultValues; } else { propertyNames = new string[properties.Length]; defaultValues = new object[properties.Length]; for (int i = 0; i < properties.Length; i++) { propertyNames[i] = properties[i].Name; var defaultValueAttribute = Attribute.GetCustomAttribute(properties[i], typeof(DefaultValueAttribute)) as DefaultValueAttribute; if (defaultValueAttribute != null) { defaultValues[i] = defaultValueAttribute.Value; } } } }