コード例 #1
0
        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;
        }
コード例 #2
0
        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;
                    }
                }
            }
        }