Что такое аннотация DispId в С#?

например

public interface IWMPSettings

        [DispId(101)]
        bool autoStart { get; set; }
        [DispId(102)]
        int balance { get; set; }

полезно или просто автогенерируется для компилятора?

Ответ 1

Короче говоря, да, это полезно, но только для отправки COM:

DispIdAttribute (из MSDN):

Определяет идентификатор отправки COM (DISPID) метода, поля или свойства.

Этот атрибут содержит DISPID для описываемого метода, поля или свойства. Уникальные DISPID обычно назначаются средой общего языка, но вы можете использовать этот атрибут для назначения определенного метода DISPID методу. При импорте библиотеки типов этот атрибут применяется ко всем методам с назначенными DISPID. Это гарантирует, что любая управляемая реализация того же метода сохраняет тот же DISPID, если он открыт для COM.