代码之家  ›  专栏  ›  技术社区  ›  Tihauan

如何在企业架构师中指定Delphi接口guid?

  •  2
  • Tihauan  · 技术社区  · 15 年前

    我正在使用企业架构师代码生成功能将我的模型导出到Delphi代码。有没有一种方法可以在EA中指定接口guid,以便在输出代码中完全定义接口?

    例子:

    ILogger = interface
      procedure Log(AMessage: ILoggerMessage);
    end;
    

    应该是

    ILogger = interface
    ['{16B77CF4-4219-412D-B1F3-20E29E2E9D9E}']
      procedure Log(AMessage: ILoggerMessage);
    end;
    
    3 回复  |  直到 15 年前
        1
  •  1
  •   user160400    15 年前

    您应该添加到ilogger taggedValue 属性 值包含Delphi喜欢的guid格式:

    Attribute=['{16B77CF4-4219-412D-B1F3-20E29E2E9D9E}']
    

    然后您应该修改代码生成模板 阶级主体 并添加

    %classTag:"Attribute"%
    

    作为第二行(如果elemtype==“interface”%,则应在%之后) 现在,EA应该用guid正确地生成代码。 EA很好地导入了它,但未能正确生成。

    这只是接口的一个快速修复,我用Delphi编程已经很久了,所以我不确定类是否也可以有这样的属性,所以目前的解决方案仅限于接口:)。

        2
  •  2
  •   Ken White    15 年前

    不,Delphi不知道您是否需要一个guid,因为不是所有接口都必须有一个guid。(例如,接口不是为COM设计的,也不实现IDispatch。)IDE看不懂你的想法(也许将来还有希望),也不知道你打算创建什么类型的接口。

        3
  •  0
  •   Fabricio Araujo    15 年前

    似乎EA不支持COM编程中的接口。但是,您可以尝试使用模板编辑功能来更改生成代码的方式…