Exemplo n.º 1
0
        internal static SettingsKey GetSettingsKey(PropertyInfo propertyInfo, ISettingsProviderClass settingsProvider, ISolutionProjectModel solutionProject = null)
        {
            if (solutionProject == null)
            {
                return(new SettingsKey(string.Format("{0}_{1}", settingsProvider.GetType().FullName, propertyInfo.Name)));
            }
            string key = "_" + solutionProject.SolutionFileName + solutionProject.ItemPath.GetHashCode();

            return(new SettingsKey(string.Format("{0}_{1}{2}", settingsProvider.GetType().FullName, propertyInfo.Name, key)));
        }
Exemplo n.º 2
0
 public static IEnumerable <PropertyInfo> GetSettableProperties(this ISettingsProviderClass settingsProvider, params SettingsAvailability[] availabilities)
 {
     return(settingsProvider.GetType().GetProperties()
            .Where(info => info.GetAttributes <SettingsPropertyAttribute>(false).Any() &&
                   (availabilities == null || availabilities.Length == 0 || availabilities.Contains(info.GetAttributes <SettingsPropertyAttribute>(false).First().Availability)) &&
                   info.CanWrite && (info.PropertyType.IsEnum || allowedTypes.Contains(info.PropertyType))));
 }