Собрать значения свойств атрибута
Я заранее прошу прощения, если это станет немного запутанным.
У меня есть атрибут класса, как так:
[AttributeUsage(AttributeTargets.Property, AllowMultiple = true)]
public class RepositoryCollectionMethodAttribute : Attribute
{
public string MethodName { get; set; }
public RepositoryCollectionMethodAttribute(string methodName)
{
MethodName = methodName;
}
}
Я пересекаю свой домен класса, используя EnvDTE
, собирая классы для генерации кода. Нахождение класса, который украшает одно или несколько свойств с RepositoryCollectionMethod
,
Эта часть была относительно простой, поэтому для каждого класса с некоторыми из этих свойств я теперь IEnumerable<CodeProperty>
Я звоню properties
,
Теперь я застрял. Из-за природы этих объектов EnvDTE (которые, похоже, не любят строгую типизацию и хорошую документацию / примеры), я не могу понять, как извлечь отдельный список MethodName
значения свойств из коллекции свойств, по крайней мере одно из которых будет иметь RepositoryCollectionMethod
украшать его.
Другими словами, если у меня есть класс `Foo', подобный этому:
public class Foo
{
public Guid FooId { get; set; }
[RepositoryCollectionMethod("GetFoosByCategory")]
public string Category { get; set; }
[RepositoryCollectionMethod("GetFoosByClass")]
[RepositoryCollectionMethod("GetFoosByClassAndLot")]
public string Class { get; set; }
[RepositoryCollectionMethod("GetFoosByLot")]
[RepositoryCollectionMethod("GetFoosByClassAndLot")]
public string Lot { get; set; }
}
... учитывая IEnumerable<CodeProperty>
из Foo
свойства, я хотел бы создать следующий список:
- GetFoosByCategory
- GetFoosByClass
- GetFoosByClassAndLot
- GetFoosByLot
Кто-нибудь может мне с этим помочь?