Существующий код (упрощенный)Получение Атрибут Описание недвижимости
У меня эту функцию
public static string[] GetFieldNames<T>(IEnumerable<T> items)
where T : class
{
var properties = typeof(T).GetProperties().Where(p => SystemTypes.Contains(p.PropertyType)); // Only get System types
return properties.Select(p => p.Name).ToArray();
}
Так что, если у меня есть этот класс
class MyClass {
public string Name { get; set; }
[Description("The value")]
public int Value { get; set; }
}
я могу иметь код, как этот
List<MyClass> items = ...; // Populate items somehow
string[] fieldNames = GetFieldNames(items); // This returns ["Name", "Value"]
Это прекрасно работает.
Проблема
Мне нужно, чтобы получить описание (если она существует), так что GetFieldNames(items)
возвращает ["Name", "The value"]
Как изменить функцию GetFieldNames()
прочитать описание атрибута, если он существует?
(Пожалуйста, обратите внимание, что эта функция была упрощена, реальная функция является гораздо более сложным, так что пожалуйста, не меняя логики)
Что это возвращение сейчас, и что вам нужно сделать по-другому? Вы хотите вернуть «Словарь» вместо строкового массива? – AdamMc331
McAdams331, вы прочитали вопрос? Я не уверен, как я могу сделать это яснее. Нет, он все равно будет строковым массивом (подпись функции не должна меняться) – Aximili