Собрать значения свойств атрибута

Я заранее прошу прощения, если это станет немного запутанным.

У меня есть атрибут класса, как так:

[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

Кто-нибудь может мне с этим помочь?

0 ответов

Другие вопросы по тегам