代码之家  ›  专栏  ›  技术社区  ›  Mutation Person

部分类和COM接口

  •  2
  • Mutation Person  · 技术社区  · 16 年前

    我正在创建一个C库,并将向它公开一个COM接口。

    我了解执行此操作所需的步骤,即

    1. 确保分配了assumbly guid,例如: [assembly: Guid("dde7717b-2b75-4972-a4eb-b3d040c0a182")]
    2. 确保comvibile属性为true
    3. 在类上放置一个guid属性,例如 [GuidAttribute("4df74b15-d531-4217-af7e-56972e393904")]
    4. 使用regasm注册。

    我的问题是。如果我定义了一个分部类。我需要添加 GuidAttribute 这两个班?

    事实上,考虑到这一点,我猜想这个问题适用于任何属性(例如 Serializable )

    任何帮助都将不胜感激。谢谢。

    2 回复  |  直到 16 年前
        1
  •  5
  •   dtb    16 年前

    如果对同一个类应用属性两次(无论是在同一个文件中还是在两个不同的文件中),则该类将应用属性两次。在两个文件中定义的分部类不是两个类,而是在多个文件中部分定义的一个类。所以,不,不要在每个文件中重复guidattribute。

        2
  •  2
  •   ata    16 年前

    在编译时,合并部分类型定义的属性。例如,以下声明:

    [System.SerializableAttribute]
    partial class Moon { }
    
    [System.ObsoleteAttribute]
    partial class Moon { }
    

    相当于:

    [System.SerializableAttribute]
    [System.ObsoleteAttribute]
    class Moon { }