記事
· 2024年2月6日 4m read

Native SDK (NativeAPI) for .NET を使用する簡単なサンプルのご紹介

需要はそんなに多くはないのですが、時折「Native SDK (Native API) for .NET の使い方」に関するご質問を受けることがありますので、簡単に試せるサンプルをご紹介します。

Native SDK (Native API) for .NET を使用すると、ObjectScript のクラスメソッドを、ネイティブの .NET メソッドを呼び出すのと同じように、.NET アプリケーションから簡単に呼び出すことができます。
また、グローバルへのアクセスも簡単に行えます。
こちらの記事では、VB.NET のサンプルコードをご紹介します。

以下の手順で実行していきます。

  1. 前準備
  2. IRISサーバに接続し、IRISオブジェクトを作成する。
  3. クラスメソッドを実行する(ユーザ作成メソッド&参照渡し引数)
  4. クラスメソッドを実行する - その2(クラスライブラリメソッドを実行&戻り値あり)
  5. グローバルにアクセスする
  6. 切断する


★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 に挑戦

ディスカッション (0)0
続けるにはログインするか新規登録を行ってください