2011-09-03 2 views
2

私はLuaInterfaceをLuaInterfaceを使ってc#プログラムに統合しています。プログラムのC#メソッドにアクセスできるスクリプトを作成できるようにしたい。使用。 LuaInterfaceで登録されたメソッドの中で

アクセスしているメソッドは別々のサブシステムにあり、私はLuaメソッドでサブシステムを定義してから、メソッドを使用したいと考えました。セパレータとして。例: SubsystemName.MethodName

ただし、このメソッドを登録しようとすると例外がスローされます。私はそれを_に変更し、それは完全に動作します。とにかくそれを働かせてもらえますか?プログラムには、HTTP経由のJSON-RPCのようなこれらのメソッドを呼び出すための他のインターフェースがあります。表記法は一貫していると思います。

答えて

3

_を.NETコードの区切り文字として使用して定義することができます。 SubsystemName_MethodName。そして、おおよそ以下の単純なんLuaのモジュールを作成:

local YourClass = luanet.import_type("Your.Binding.Class") 

SubsystemName = {} -- create a global table 
SubsystemName.MethodName = YourClass.SubsystemName_MethodName 

これはLuaのでSubsystemName.MethodNameを使用できるようになります。

手動で行うのではなく(退屈でエラーが起こりやすい)、クラス/メソッドのリストからLuaコードを作成するコードジェネレータを使用できます。

+0

これはうまくいきました。私はすでにすべてのメソッドを登録したコードを持っていました。私はあなたが私を誤解したと思う。実行中のプログラムはC#で書かれています。これらのスクリプトが.netメソッドにアクセスできるところで、Luaスクリプトを実行できるようにしたいと思っていました。私はこれを行うには、LuaInterfaceライブラリを使用しています。あなたのコードは動作しますので、私は受け入れます。 –

0

メンバー名には、.NETでは.を含めることはできません。

+0

私はそれが私が望んでいたものではないことを知っています。 .Netでは、サブシステムは異なるクラスです。私はちょうどルアの呼び出しを使用したい。私はJsonのように。システムはそれを解析して、メソッドがどのクラスにあるかを調べます。 –

関連する問題