Как создать вложенные атрибуты?
Имеются пользовательские атрибуты 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.: в принципе мне бы хватило информации о том, как получить доступ к атрибутам класса из атрибута свойства, но ничего подобного не нашёл...