我正在开发需要显示复杂二维矢量图形的 Silverlight 应用程序。 它从服务器下载压缩的 XAML 文件,解析它 (XamlRead) 并注入(inject)到页面上的布局根目录。 这适用于相当小的 xaml 文件。问题是我需要让它处理更大的文件(里面有更多的内容)。例如,我的一个未压缩的 xaml 文件有 20 MB 大,XamlRead 方法需要很长时间才能解析它。我的问题是是否有办法在服务器端进行所有解析。最好将 XamlRead 方法的序列化二进制输出作为 BLOB 存储在数据库中。但是,当我尝试对其进行序列化时,我收到一条消息,指出“Canvas 对象未标记为可序列化”。我真的很感激任何建议。
最佳答案
Silverlight 没有太多内置的二进制序列化;然而,protobuf-net适用于 Silverlight,可能有助于填补这一空白。在当前版本中,您只能真正序列化您控制的类型(由于添加了属性)——但是,我正在进行重大重构以(除其他事项外)添加对不带属性的序列化类型的支持。
我预计还需要大约 2 周的时间才能将其作为(希望如此)稳定的版本提供,但欢迎您到时查看它。
请注意,您仍然需要给它一些帮助(告诉它您希望它序列化什么),但这可能会有用。
特别是,数据格式(“ Protocol Buffer ”)被设计成既密集又高效的处理方式,这应该会提高解析速度。 See here更多(数字来自主要的 .NET,而不是 Silverlight)
关于c# - Silverlight XAML 对象的二进制序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/723142/