예제 #1
0
		private static OptionConfigurationPropertyCollection GetOptionPropertiesFromType(Type type)
		{
			OptionConfigurationPropertyCollection properties;

			if(_propertyBags.TryGetValue(type, out properties))
				return properties;

			lock(_propertyBags)
			{
				if(_propertyBags.TryGetValue(type, out properties))
					return properties;

				properties = new OptionConfigurationPropertyCollection();

				foreach(var propertyInfo in type.GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance))
				{
					var property = CreateOptionPropertyFromAttribute(propertyInfo);

					if(property != null)
						properties.Add(property);
				}

				_propertyBags[type] = properties;
			}

			return properties;
		}
예제 #2
0
        public static OptionConfigurationProperty GetDefaultCollectionProperty(OptionConfigurationPropertyCollection properties)
        {
            if (properties == null || properties.Count < 1)
            {
                return(null);
            }

            return(properties.FirstOrDefault(property => property.IsDefaultCollection));
        }