为什么需要在c#中使用DispId注释?

时间:2012-01-17 09:57:54

标签: c# .net visual-studio

例如

public interface IWMPSettings

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

它是有用的还是只是为编译器自动生成的?什么是COM调度标识符以及何时在.NET上下文中需要它们?

1 个答案:

答案 0 :(得分:15)

简而言之,它是有用的,但仅适用于COM发送:

The DispIdAttribute(来自MSDN):

  

指定方法,字段或属性的COM调度标识符(DISPID)。

     

此属性包含其描述的方法,字段或属性的DISPID。唯一的DISPID通常由公共语言运行库分配,但您可以使用此属性为方法分配特定的DISPID。导入类型库时,此属性将应用于具有已分配DISPID的所有方法。这可确保相同方法的任何托管实现在暴露给COM时都保留相同的DISPID。