Seasar DI Container with AOP

s2hessian.NET使うと、Seasar2のコンポーネントをWSDLなしに。NETクライアントか ら簡単に呼び出 す事ができるようになります。

セットアップ

netframework 2.0を使用してください。Visual Studio 2005 Express Editonなら無償で使用できます。s2hessian.NETnethessian.ExampleをDownload し、解凍してできた s2hessian.NETディレクトリとnethessian.Exampleディレクトリを解凍し、nethessian.Exampleを Visual Studioで開いて下さい。

DownLoad

s2hessian.NET
nethessian.Example

使い方

Serverは、s2hessianをそのまま使います。

ClientのTest

nethessian.Example ソリューションの中に、nethessian.Test Projectがありますので、その Formを開いて、Test Startボタンを押して下さい。
Sampleがはしります。

実際の使用方法

まず下記のコマンドでProxyを作ります。
DotNetProxy dnp = new DotNetProxy("http://localhost:8080/s2hessian/s2h/")
Method CALLは下記の形式になります。
(return type) dnp.invoke("コンポーネントの名前","メソッド",typeof(return type),メソッドの引数) 
例えば、下記の様になり、メソッドの引数は、必要な個数分カンマで区切ってならべます。
int resi = (int)dnp.invoke("test", "intPlus", typeof(int), 300, 5);
C#のクラスとJAVAのクラスの対応を指定するには、2つの方法があります
dnp.setClassConv?("nethessiantest.MyObject1","org.seasar.s2hessian.example.MyObject?");の様に明示して指定

あるいは下記の様に CLASSの前に属性で指定

[JavaClass("org.seasar.s2hessian.example.MyObject")]
public class MyObject1
{
private int int1;
public int getInt1()
{
return int1;
}

public void setInt1(int int1)
{
this.int1 = int1;
}
〜略〜
}
なお上記の様に明示したものと、Method Callの引数およびreturn typeで指定したもの(一度でも)は、変換 Tableに入りますが、指定のないClassが、Serverから戻って来ると Errorになります。この場合は、明示する方法で予め変換 Tableに追加しておいて下さい。