Повышение производительности при использовании атрибутов в .NET
1. Есть ли какие-либо издержки производительности, вызванные использованием атрибутов? Думайте для класса как:
public class MyClass
{
int Count {get;set;}
}
где он имеет 10 атрибутов (атрибуты являются классами, где сами классы атрибутов намного больше, чем сам MyClass, например:
public class FirstAttribute : Attribute
{
int A,B,C,D,E,F,G,H,I,J ... {get;set;}
}
2 .. Будут ли 10 из этих атрибутов каждый раз накладываться на память?MyClass
создается? (FirstAttribute
будучи в 10 раз большеMyClass
который будет украшен 10 из них, поэтому сам фактический объект будет таким маленьким по сравнению с общим размером атрибутов, которые на нем украшены.) Это вызывает беспокойство?
3. Будет ли этот сценарий отличаться для структур (Структуры являются типами значений, а атрибуты - ссылочными типами)?
4. Где хранятся атрибуты в памяти относительно объекта, к которому они прикреплены? Как они связаны друг с другом?
5 .. Атрибуты инициализируются, как толькоMyClass
инициализируется или когда вы используете отражение, чтобы получить их?