0

我正在尝试在我们的业务应用程序中使用 .NET 程序集 System.Text.RegularExpressions 来减轻验证负担。我已经尝试使用 OpenEdge Architect“Assembly References”选项添加程序集,但它拒绝遵守

该程序集未存储在 windows/assembly (GAC) 文件夹中,我可以通过选择 Local Assemblies 选项卡并导航到 Windows\Microsoft.NET\assembly\GAC_MSIL 来找到它,但是当我尝试添加 dll 时出现以下错误“不是一个有效的程序集”

我知道该程序集没有损坏,因为我在开发 C#.NET 应用程序时一直在使用它。我也遇到过这篇文章,它演示了在 ABL 中使用的 System.Text.RegularExpressions。如果有人能够提供任何可以让我完成这项工作的建议,我将不胜感激。

提前致谢

4

2 回答 2

0

今天早上来自 Progress 的 PANS 电子邮件中显示了以下内容:

http://knowledgebase.progress.com/articles/Article/000039027?popup=true

以下示例显示了如何在 ABL 中使用正则表达式:

 /*
  * IN TESTING, THIS DOESN'T WORK WITH MY INSTALLATION OF VERSION 10.2B RHEL 6,
  * BUT IT DOES WORK WITH VERSION 10.2B WINDOWS INSTALLATION
  *
  * THE ERROR RETURNED ON THE LINUX ENVIRONMENT IS:
  * │Could not find class or interface Regex. (12886)
  */

USING System.Text.RegularExpressions.*. 
DEFINE VARIABLE chaine AS CHARACTER NO-UNDO INIT "test@test.com". 
DEFINE VARIABLE i AS INTEGER NO-UNDO. 
DEFINE VARIABLE regexp AS CLASS Regex NO-UNDO. 

regexp = NEW Regex("^[^\x00-\x1F^\(^\)^\<^\>^\@^\,^\;^\:^\\^\~"^\.^\[^\]^\s]+(\.[^\x00-\x1F^\(^\)^\<^\>^\@^\,^\;^\:^\\^\~"^\.^\[^\]^\s]+)*@([^\x00-\x1F^\(^\)^\<^\> ^\@^\,^\;^\:^\\^\~"^\.^\[^\]^\s]+(\.[^\x00-\x1F^\(^\)^\<^\>^\@^\,^\;^\:^\\^\~"^\.^\[^\]^\s]+))+$"). 

DO i = 1 TO 100: 
IF regexp:IsMatch(chaine) THEN MESSAGE "OK". 
ELSE MESSAGE "KO" . 
END. 
DELETE OBJECT regexp.

上面的代码示例专门针对 Windows。要在 UNIX(或 Linux)上使用正则表达式,您需要使用适用于该操作系统的相应库。可以在这里找到一个例子:

http://dbappraise.com/ppt/shlib.pptx

于 2013-03-26T14:47:52.447 回答
0

可能只是一个长镜头,但值得告诉你,两个问题是 not a valid assembly 64 bitdynamic serialization

于 2013-03-26T13:46:06.490 回答