首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为Genexus开发扩展?

如何为Genexus开发扩展?
EN

Stack Overflow用户
提问于 2021-11-11 20:15:39
回答 1查看 113关注 0票数 1

我正在尝试为Genexus开发.NET框架扩展,以侦听以下基本事件:

  • 锁事件
  • 提交事件
  • 更新事件

编辑

我尝试过粘贴从AbstractPackage派生的包,并在GXServerInstance/VDir/BinGenexus/Packages文件夹中实现了来自Genexus的IGxPackageBL,并使用EventSubscription with ServerEvents.BeforeLockObject收听LockEvents,但是没有看到这个包是用Genexus初始化的。这门课来自Genexus.Server.Common.ddl

以下是我迄今所做的尝试:

我从“模板”创建了该项目:

Package.cs

AssemblyInfo.cs

这个扩展没有被加载,下面是https://mygxserver/v16/extensions.aspx显示的内容:

GXServer.log文件没有看到正在记录任何错误,并且显示扩展名实际上已经加载,尽管没有工作.

  • 如何为Genexus (16)设置一个扩展?
  • 从服务器中可以使用哪些DLL来实现扩展的功能?
EN

回答 1

Stack Overflow用户

发布于 2021-11-12 15:10:08

GeneXus服务器扩展的开发方式与GeneXus扩展相同,必须安装在您提到的路径中。这里的区别是GXserver只加载BL扩展

可以通过两种方式对扩展进行分类:

  1. UI扩展:这些扩展只在GeneXus IDE中加载,可以添加用户界面组件,如工具窗口、工具栏、菜单、命令、编辑器等。

  1. BL扩展:--只要加载业务逻辑层,就会加载这些扩展。这是,除了在运行GeneXus IDE时,它还包括在运行MSBuild任务或加载GXserver服务时。这类扩展通常是:

代码语言:javascript
复制
- Add new object types
- Add new parts to objects
- Add new properties to objects
- Implement services defined in SDK or other shared assemblies

为使延期被视为“基本法”扩展,必须符合以下规定:

  1. Package类必须扩展AbstractPackage并实现IGxPackageBL。例:

公共类包: AbstractPackage,IGxPackageBL

我在提供的映像中注意到,IGxPackageBL的实现缺失了。除了那些已经从AbstractPackage继承的成员之外,这个接口没有为包定义任何新成员,但是包加载程序无论如何都会检查它。

  1. PackageAttribute中通知包不是UI扩展。例:

程序集:PackageAttribute(类型(包),IsUIPackage = false)

在进行这些更改并在VDir\BinGenexus\Package文件夹中复制包程序集之后,您可以导航到浏览器中的扩展页(例如:https://mygxserver/v16/extensions.aspx),并且应该会看到您的扩展加载。

至于您可以使用的二进制文件,GXserver SDK正在进行中。在v17中,我们开始使用名为BinServer的SDK分发一个新文件夹,其中包含了我们很乐意将其作为SDK的一部分的二进制文件,目前它是ContianGenexus.Server.Common.dllGeneXus.Server.ExternalTool.dll的一部分。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69934389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档