C#でExternal Objectを作成した時の備忘録。
一応流れ的なことと、引数の渡し方を中心に書きます。
あくまでも個人的にやった結果なので、他のやり方もあるだろうし
もっといい方法もいっぱいあると思います。
そして長くなったので何回かに分けます。
参考リンク
参考
カテゴリ:外部オブジェクトwiki.genexus.jp
環境
GeneXus16
Visual Studio Community 2019
事前準備
まずはGeneXusで適当にKB(C#)を作成し一回ビルドをします。
文字結合
とくにC#でやる必要性はないです。C#側で処理できてるか確認するためだけです。
VisualStudioを起動し、プロジェクトを新規作成します。
種類はクラスライブラリを選択します。
適当にクラスを作成します。文字列を受け取り、少し加工してGeneXusに返却するクラスを作成します。
using System;
namespace AddClassLibrary
{
public class GxCsTest
{
public static string GetString(String str)
{
var test = "C# Add Library";
return str + ":" + test;
}
}
}
ソリューションのクリーンとソリューションのリビルドをする。
次にGeneXusで「External Object」を作成します。
プロパティは以下のように設定します。
GeneXusのターゲットディレクトリを開き、DLLを配置します。
KBのターゲットディレクトリ¥bin¥AddClassLibrary.dll
※普通はGeneXus内のファイルオブジェクトに設定して、コピー機能を利用するのが楽だと思いますが今回はお試しなので手動配置です。
ここで一回とりあえずビルドします。
問題があればここでエラーがでます。
次に適当にウェブパネルを作成して、「External Object」を呼び出します。
Event 'TEST'
// C#で文字結合
&Vartest = GxCsTest.GetString("TESTだよ!")
MSG(&Vartest)
Endevent
実行結果
GeneXusで指定した文字列とVS内で記述した文字列が結合されて表示されれば成功です。
まとめ
次はパラメーターにSDTを指定する方法。
以上です。