0

ビジネス アプリケーション内で .NET アセンブリ System.Text.RegularExpressions を利用して、検証の負担を軽減しようとしています。OpenEdge Architect の「Assembly References」オプションを使用してアセンブリを追加しようとしましたが、準拠を拒否しています

アセンブリは Windows/Assembly (GAC) フォルダー内に格納されていません。[ローカル アセンブリ] タブを選択し、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) で正規表現を使用するには、その OS に適したライブラリを使用する必要があります。例はここにあります:

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

于 2013-03-26T14:47:52.447 に答える
0

おそらく単なるロングショットですが、有効なアセンブリではない64 ビットまたは動的シリアル化に関する 2 つの問題について説明する価値があります。

于 2013-03-26T13:46:06.490 に答える