Native SDK (NativeAPI) for .NET を使用する簡単なサンプルのご紹介
需要はそんなに多くはないのですが、時折「Native SDK (Native API) for .NET の使い方」に関するご質問を受けることがありますので、簡単に試せるサンプルをご紹介します。
Native SDK (Native API) for .NET を使用すると、ObjectScript のクラスメソッドを、ネイティブの .NET メソッドを呼び出すのと同じように、.NET アプリケーションから簡単に呼び出すことができます。
また、グローバルへのアクセスも簡単に行えます。
こちらの記事では、VB.NET のサンプルコードをご紹介します。
以下の手順で実行していきます。
- 前準備
- IRISサーバに接続し、IRISオブジェクトを作成する。
- クラスメソッドを実行する(ユーザ作成メソッド&参照渡し引数)
- クラスメソッドを実行する - その2(クラスライブラリメソッドを実行&戻り値あり)
- グローバルにアクセスする
- 切断する
★1.前準備
Visual Studio のプロジェクトメニューから参照の追加をクリックして、以下のファイルを選択します。
(使用している .NET(Core) または .NET Framework バージョンに合わせて、それに対応するファイルを選択します。
以下の例は、フレームワークに .Net 6.0 を選んでいるため、net6.0 を選択しています。)
C:\InterSystems\IRIS\dev\dotnet\bin\net6.0 InterSystems.Data.IRISClient.dll
IRISに以下のようなクラスを作成します。
Class User.Person Extends%RegisteredObject
{
ClassMethod testNameAPI(name As%String, ByRef output As%String)
{
set output=name_" || "_$ZDT($H)
}
}
★2.IRISに接続する
IRISに接続するコードは以下のようになります。
Imports InterSystems.Data.IRISClient Imports InterSystems.Data.IRISClient.ADO Module Program Sub Main(args As String()) Dim conn As New IRISConnection conn.ConnectionString = "Server=localhost;Port=1972;Namespace=USER;User ID=_SYSTEM;Password=SYS" ' 接続をOPEN conn.Open() ' irisオブジェクトを作成 Dim iris As IRIS = IRIS.CreateIRIS(conn) ' : 続きの処理... End Sub End Module
★3.クラスメソッドを実行する(ユーザ作成メソッド&参照渡し引数)
2の ': 続きの処理... に以下を追加します。
'IRISのクラスメソッドを引数(+参照渡し引数)付きで実行する
Dim reference As New IRISReference("")
iris.ClassMethodVoid("User.Person", "testNameAPI", "InterSystems", reference)
Console.WriteLine(reference.value)コンソールに、以下のように出力されます。
InterSystems || 02/07/2024 09:28:49
4.クラスメソッドを実行する - その2(クラスライブラリメソッドを実行&戻り値あり)
'IRISのシステムクラスメソッドを実行し、戻り値を受け取る'以下の例は、IRISのインストールディレクトリを返すユーティリティ関数を実行 Dim installdir As String = iris.ClassMethodString("%SYSTEM.Util", "InstallDirectory") Console.WriteLine(installdir.ToString)
コンソールに、以下のように出力されます。
c:\intersystems\iris\
※その他、ObjectScript クラスメソッドやユーザ定義関数の呼び出しについては、以下のドキュメントを参照してください。
.NET からの ObjectScript メソッドおよび関数の呼び出し
★5.グローバルにアクセスする
2の ': 続きの処理... に以下を追加します。
' myGlobalというグローバルを作成し値をSetする iris.Set("first", "myGlobal") ' Set myGlobal = "first" iris.Set("second", "myGlobal", "A") ' Set myGlobal("A") = "second" ' Setしたグローバルを表示する Console.WriteLine("myGlobal = " & iris.GetString("myGlobal")) Console.WriteLine("myGlobal(""A"") = " & iris.GetString("myGlobal(""A"")"))
コンソールに、以下のように出力されます。
myGlobal = first
myGlobal("A") = second ※その他グローバルの操作については、以下のドキュメントを参照してください。
グローバル配列の操作
★6.切断する
2の ': 続きの処理... に以下を追加します。
iris.Close() conn.Close()
以下の記事では、「Caché .Net Bindingで作成したアプリケーションをIRISの.Net Native APIで書き換える方法」をご紹介しております。
Caché .Net BindingアプリケーションをIRISの.Net Native APIを利用して書き換える方法(その1)
Caché .Net BindingアプリケーションをIRISの.Net Native APIを利用して書き換える方法(その2)
Caché .Net BindingアプリケーションをIRISの.Net Native APIを利用して書き換える方法(その3)
Native SDK (Native API) for Python を試されたい方は、以下の記事をご覧ください。
【はじめての InterSystems IRIS】セルフラーニングビデオ:アクセス編:Python の NativeAPI に挑戦