Как создать вложенные атрибуты?

Имеются пользовательские атрибуты LocalizedDisplayNameAttribute, LocalizedDescriptionAttribute и LocalizedCategoryAttribute. Указанные атрибуты наследуются от DisplayNameAttribute, DescriptionAttribute и CategoryAttribute соответственно и используются для локализации. Использование выглядит так:

class MyClass
{
    [LocalizedDescription(nameof(FirstProp), typeof(MyResourceType))]
    string FirstProp { get; set; }

    [LocalizedDescription(nameof(SecondProp), typeof(MyResourceType))]
    string SecondProp { get; set; }

    // and so on...
}

Как можно увидеть из кода при таком подходе приходиться указывать тип ресурса для каждого свойства. В связи с этим возник вопрос:
можно каким-либо образом создать "вложенные" атрибуты (не могу подобрать слово)? То есть, декорировать класс атрибутом, в котором будет указываться тип ресурсов для всего класса, а для свойств указывался бы только ключ.

Хотелось бы реализовать следующее поведение:

[LocalizationSourceType(typeof(MyResourceType))]
class MyClass
{
    [LocalizedDescription(nameof(FirstProp))]
    string FirstProp { get; set; }

    [LocalizedDescription(nameof(SecondProp))]
    string SecondProp { get; set; }

    // and so on...
}

P.S.: в принципе мне бы хватило информации о том, как получить доступ к атрибутам класса из атрибута свойства, но ничего подобного не нашёл...


Ответы (0 шт):