【GeneXus】C#でExternal Object(その1)

C#でExternal Objectを作成した時の備忘録。

一応流れ的なことと、引数の渡し方を中心に書きます。
あくまでも個人的にやった結果なので、他のやり方もあるだろうし
もっといい方法もいっぱいあると思います。

そして長くなったので何回かに分けます。

参考リンク

参考 カテゴリ:外部オブジェクトwiki.genexus.jp

環境

GeneXus16
Visual Studio Community 2019

事前準備

まずはGeneXusで適当にKB(C#)を作成し一回ビルドをします。

文字結合

とくにC#でやる必要性はないです。C#側で処理できてるか確認するためだけです。

VisualStudioを起動し、プロジェクトを新規作成します。
種類はクラスライブラリを選択します。

適当にクラスを作成します。文字列を受け取り、少し加工してGeneXusに返却するクラスを作成します。

GxCsTest.cs

using System;

namespace AddClassLibrary
{
    public class GxCsTest
    {
        public static string GetString(String str)
        {
            var test = "C# Add Library";
            return str + ":" + test;
        }
    }
}

ソリューションのクリーンとソリューションのリビルドをする。

次にGeneXusで「External Object」を作成します。
プロパティは以下のように設定します。

GxCsTest


GeneXusのターゲットディレクトリを開き、DLLを配置します。
KBのターゲットディレクトリ¥bin¥AddClassLibrary.dll
※普通はGeneXus内のファイルオブジェクトに設定して、コピー機能を利用するのが楽だと思いますが今回はお試しなので手動配置です。

ここで一回とりあえずビルドします。
問題があればここでエラーがでます。

次に適当にウェブパネルを作成して、「External Object」を呼び出します。

Event 'TEST'
	// C#で文字結合
	&Vartest = GxCsTest.GetString("TESTだよ!")
	MSG(&Vartest)
Endevent

実行結果

画面から実行します。

GeneXusで指定した文字列とVS内で記述した文字列が結合されて表示されれば成功です。

まとめ

次はパラメーターにSDTを指定する方法。
【GeneXus】C#でExternal Object(その2)

以上です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください