Я предполагаю под списком параметров, вы имеете в виду список всех атрибутов использования?
Если нет, этот код показывает, как получить атрибут, используя отражение для всего класса. Но вы должны иметь возможность взять то, что вам нужно.
Итак, вот метод, позволяющий найти все атрибуты определенного типа в любом свойстве внутри TestClass
public IEnumberable<Result> GetAttributesFromClass(TestClass t)
{
foreach(var property in t.GetType().GetProperties())
{
foreach(Author author in property.GetCustomAttributes(typeof(Arthor), true))
{
// now you have an author, do what you please
var version = author.version;
var authorName = author.name;
// You also have the property name
var name = property.Name;
// So with this information you can make a custom class Result,
// which could contain any information from author,
// or even the attribute itself
yield return new Result(name,....);
}
}
}
Тогда вы можете пойти:
var testClass = new TestClass();
var results = GetAttributesFromClass(testClass);
Кроме того, вы можете захотеть, чтобы ваши public double version
и string name
были свойствами.
Примерно так:
public double version
{
get;
private set;
}
Что позволит установить version
из конструктора и читать из любого места.