2

WebORB を使用して .NET サーバーと通信する Adob​​e Flex クライアントがあります。簡単に言うと、.NET 側では、次のように ulong をラップする構造体があります。

public struct MyStruct
{
    private ulong _val;

    public override string ToString()
    {
        return _val.ToString("x16");
    }

    // Parse method
}

そしてクラス:

public class MyClass
{
    public MyStruct Info { get; set; }
}

Flex クライアントが MyStruct を文字列として扱うようにしたい。したがって、次のサーバーメソッドの場合:

public void DoStuff(int i, MyClass b);

次のように呼び出すことができます(Flexがわからないため、ここではC#)

MyClass c = new MyClass();
c.Info = "1234567890ABCDEF"
DoStuff(1, c)

カスタム WebORB シリアライザーを試してみましたが、ドキュメントが少し不足しています。これは可能ですか?もしそうなら、どのように?

シリアル化する方法は考えられると思いますが、その逆はできません。Flex 側でもカスタム シリアライザーを作成する必要がありますか?

4

3 に答える 3

2

WebORB for .NET 4.0 のリリースに伴い、新しいドキュメントが追加されました。来てください:

http://www.themidnightcoders.com/fileadmin/docs/dotnet/v4/guide/index.html?serializationoverview.htm

ドキュメントのこのセクションではシリアライゼーションについて説明しており、カスタム シリアライゼーションの詳細情報にドリルダウンできます。

これがお役に立てば幸いです!

乾杯、キャスリーン

于 2010-09-07T16:40:43.593 に答える
1

構造体用にを作成する場合、TypeConverterWebOrbはそれを取得し、変換に使用する必要があります。

于 2010-03-24T22:03:45.393 に答える
1

DoStuff 関数をオーバーロードして、文字列または MyStruct を 2 番目のパラメーターとして許可し、そこで明示的に処理しないのはなぜですか?

クラス用に独自のカスタムシリアライザーを作成することは間違いありませんが、ドキュメントはこれを吸っています。

WebOrb の ITypeWriter public interface ITypeWriter { void write( object obj, IProtocolFormatter writer ); を実装するカスタム タイプ ライターを作成します。bool isReferenceableType(); }

タイプを Weborb.Writer.MessageWriter.AddTypeWriter( Type mappedType, ITypeWriter typeWriter ); でマップします。

または、weborb.config または管理コンソールを使用してマップします。

少しトリッキーですが、間違いなく実行可能です。これについてさらにサポートが必要な場合はお知らせください。私が作成したカスタム シリアライザーをいくつか提供できます。また、yahoo flashorb グループで IProtocolFormatter を検索すると、かなりの数が表示されるはずです。しかし、単純な関数のオーバーロードで問題ないはずです:-P

于 2010-03-24T21:50:39.057 に答える