1
Merge branch 'master' of https://github.com/ProESM/StoneExport.git
лишний файл
Добавил статический класс-расширение "ReflectionExtensions".

В нем реализовал статические методы получения пользовательского отображения для произвольных полей/свойств произвольных типов/классов.

У каждого метода есть его перегруженная версия. Примеры использования (2 варианта).

Дан класс:

    public static class SystemObjects
    {
        [Display(Name = "Корень (родитель) всех объектов")]
        public static readonly Guid Root = new Guid("C034E889-3B80-42D3-BDAD-5F4E729A905B");
        [Display(Name = "Настройки системы")]
        public static readonly Guid SystemSettings = new Guid("0322648B-488A-40C0-9CEE-B3A4F9B572EF");
        [Display(Name = "Служебные состояния дерева объектов")]
        public static readonly Guid SystemObjectStates = new Guid("FB782982-8E78-4DD0-B678-DDC24AF694FC");
        [Display(Name = "Все типы объектов")]
        public static readonly Guid SystemObjectTypes = new Guid("F8984CD8-3409-4C19-8FCE-85A5BD2E3161");
    }

Для получения пользовательского отображения для поля SystemSettings (т.е. "Настройки системы"), можно использовать:

1) var displayName = ReflectionExtensions.GetFieldDisplayName(f => SystemObjects.SystemSettings)

2) если этот класс "SystemObjects" не был бы статическим, можно было и вот так:
   var displayName = ReflectionExtensions.GetFieldDisplayName<SystemObjects>(f => f.SystemSettings)