Я хотел бы отфильтровать файлы, которые показаны в Я написал настраиваемый атрибут, который использую для определенных членов класса: Я могу получить настраиваемые атрибуты из типа и найти свой конкретный атрибут. Я не могу понять, как это сделать, так это получить значения назначенных свойств. Когда я беру экземпляр Dummy и передаю его (как объект) моему методу, как я могу взять объект PropertyInfo, который я возвращаю из .GetProperties (), и получить значения, присвоенные .Foo и .Bar? EDIT : Моя проблема в том, что я не могу понять, как правильно вызвать GetValue. Однако, когда я это делаю, вызов prop.GetValue выдает исключение TargetException - объект не соответствует целевому типу. Как структурировать этот вызов, чтобы получить это значение? QFileDialog
более конкретно, чем просто расширения файлов. Примеры, которые я нашел в документации Qt, показывают только такие фильтры, как Изображения (* .png * .xpm * .jpg) ;; Текстовые файлы (* .txt) ;; Файлы XML (* .xml)
и т. д. В дополнение к этому я также хотел бы указать фильтр для файлов, которые должны , а не отображаться в диалоговом окне файла, например XML-файлы (*.
{[MyAttribute] публичная строка Foo {get; установлен; } [MyAttribute] public int Bar {get; установлен; } ...
public class Dummy
{
[MyAttribute]
public string Foo { get; set; }
[MyAttribute]
public int Bar { get; set; }
}
void TestMethod (object o)
{
Type t = o.GetType();
var props = t.GetProperties();
foreach (var prop in props)
{
var propattr = prop.GetCustomAttributes(false);
object attr = (from row in propattr where row.GetType() == typeof(MyAttribute) select row).First();
if (attr == null)
continue;
MyAttribute myattr = (MyAttribute)attr;
var value = prop.GetValue(prop, null);
}
}