c# - Silverlight XAML 对象的二进制序列化

标签 c# silverlight xaml silverlight-2.0

我正在开发需要显示复杂二维矢量图形的 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/

相关文章:

silverlight - 如何在不安装开发人员运行时检测和包装 "debugging resource strings are unavailable"?

wpf - 在 WPF 中,如何设置按钮的单击事件以更改网格的可见性?

ios - iOS 上的 Xamarin.Forms ListView ViewCell 问题

C# WPF 不确定进度条

c# - 将 XML 字符串插入到 openXML 文档中

c# - 禁用浏览器缓存 Azure 中运行的页面和 JavaScript

c# - 无需 TFS 或 VSTS 自动部署 Service Fabric 项目

silverlight - Blend 4 破坏了 Silverlight 的 VS2010

wpf - 在 MVVM 中的查看模式和编辑模式之间切换?

c# - Windows 8 中的 XmlnsDefinitionAttribute 和 XmlnsPrefix 模拟是什么?