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);

它可以称之为(这里是 C#,因为我不知道 Flex)

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

我尝试过使用自定义 WebORB 序列化程序,但文档有点稀缺。这可能吗?如果有怎么办?

我想我可以弄清楚如何序列化它,但不是相反。我是否还需要在 Flex 端编写自定义序列化程序?

4

3 回答 3

2

随着适用于 .NET 4.0 的 WebORB 的发布,出现了新的文档。请拜访:

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

文档的这一部分涵盖了序列化,您可以深入了解有关自定义序列化的更多详细信息。

希望这对你有帮助!

干杯,凯瑟琳

于 2010-09-07T16:40:43.593 回答
1

为什么不重载 DoStuff 函数以允许字符串或 MyStruct 作为第二个参数并在那里显式处理呢?

尽管您绝对可以为该类构建自己的自定义序列化程序,但是是的,文档很烂。

您将构建一个实现 WebOrb 的 ITypeWriter public interface ITypeWriter { void write( object obj, IProtocolFormatter writer ) 的自定义类型编写器;bool isReferenceableType(); }

并使用 Weborb.Writer.MessageWriter.AddTypeWriter(Type mappedType, ITypeWriter typeWriter) 映射类型;

或通过 weborb.config 或管理控制台映射它。

这有点棘手但绝对可行,如果您需要更多帮助,请告诉我,我可以提供我编写的几个自定义序列化程序。还要在雅虎 flashorb 组中搜索 IProtocolFormatter,这应该会出现很多。但是你应该用一个简单的函数重载就可以了:-P

于 2010-03-24T21:50:39.057 回答
1

如果你TypeConverter为你的 struct WebOrb 创建了一个,应该把它捡起来并用它来进行转换。

于 2010-03-24T22:03:45.393 回答