Вы не можете , если сторонний инструмент использует стандартное отражение для получения атрибутов для вашего типа.
Вы можете , если третий -Утилита party использует API TypeDescriptor
для получения атрибутов вашего типа.
Пример кода для дескриптора типа:
public class Foo
{
public string Bar { get; set; }
}
class FooMetadata
{
[Display(Name = "Bar")]
public string Bar { get; set; }
}
static void Main(string[] args)
{
PropertyDescriptorCollection properties;
AssociatedMetadataTypeTypeDescriptionProvider typeDescriptionProvider;
properties = TypeDescriptor.GetProperties(typeof(Foo));
Console.WriteLine(properties[0].Attributes.Count); // Prints X
typeDescriptionProvider = new AssociatedMetadataTypeTypeDescriptionProvider(
typeof(Foo),
typeof(FooMetadata));
TypeDescriptor.AddProviderTransparent(typeDescriptionProvider, typeof(Foo));
properties = TypeDescriptor.GetProperties(typeof(Foo));
Console.WriteLine(properties[0].Attributes.Count); // Prints X+1
}
Если вы запустите этот код, вы увидите, что последнийвывод на консольную запись плюс один атрибут, поскольку атрибут Display
теперь также рассматривается.