如何在 Windows Phone 7 中使用 BinaryFormatter

2023-12-12

如何在 Windows Phone 7 中使用 BinaryFormatter。

我用这个using System.Runtime.Serialization.Formatters.Binary在 service1.svc.cs 中,但我无法在 Windows Phone 7 中使用此参考。

有什么办法解决这个问题吗?

我的反序列化对象代码

 public static T DeserializeObject<T>(byte[] xml)
    {
        BinaryFormatter xs = new BinaryFormatter();
        MemoryStream memoryStream = new MemoryStream(xml);
        return (T)xs.Deserialize(memoryStream);
    } 

BinaryFormatter 在 Windows Phone 7 中给出错误。那么我该怎么办反序列化。我必须在此代码中进行哪些更改?


正如@driis提到的,你不能使用BinaryFormatter在 Windows Phone 上。您可以使用二进制文件encoding在 WCF 端点中(即,其绑定是自定义绑定的端点BinaryMessageEncodingBindingElementHttpTransportBindingElement),并且 WP7 将支持该功能。您只是不能在那里使用二进制格式化程序。

更新以下评论: 查看您的代码,不仅需要更改该代码 - 您还需要更改service代码,以 Silverlight 支持的格式序列化对象。您可以使用DataContractSerializer,使用二进制读取器/写入器,或者您可以使用这两种情况都支持的另一个库。例如,下面的代码应该在桌面版本和 SL 版本中都有效:

public static T DeserializeObject<T>(byte[] xml) 
{ 
    using (MemoryStream memoryStream = new MemoryStream(xml))
    {
        using (XmlDictionaryReader reader = XmlDictionaryReader.CreateBinaryReader(
            memoryStream, XmlDictionaryReaderQuotas.Max))
        {
            DataContractSerializer dcs = new DataContractSerializer(typeof(T));
            return (T)dcs.ReadObject(reader);
        }
    }
}

在服务器上:

public static byte[] SerializeObject<T>(T obj)
{
    using (MemoryStream ms = new MemoryStream())
    {
        using (XmlDictionaryWriter writer = XmlDictionaryWriter.CreateBinaryWriter(ms))
        {
            DataContractSerializer dcs = new DataContractSerializer(typeof(T));
            dcs.WriteObject(writer, obj);
            writer.Flush();
            return ms.ToArray();
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Windows Phone 7 中使用 BinaryFormatter 的相关文章

  • 从 WCF REST 获取错误详细信息

    我有一个由 Net WCF 客户端使用的 REST 服务 遇到错误时 REST 服务会返回 HTTP 400 错误请求 响应正文包含 JSON 序列化详细信息 如果我使用 Fiddler Javascript 或直接从 C 执行请求 我可以
  • EntityHydrate 任务失败

    我最近安装了 Visual Studio 11 Beta 和 Visual Studio 2010 之后 我无法在 Visual Studio 2010 中构建依赖于 PostSharp 的项目 因此我卸载了 Visual Studio 1
  • 看起来 MSVS 11.0 Beta 破坏了 MSVS 10.0 安装

    安装 MSVS 11Beta 后 我的 MSVS 10 遇到了编译问题 现在 当我在 MSVS 10 中编译 C 项目 在 MSVS 10 中创建的项目 目标框架 3 5 时 出现错误MSB4216 MSB4028输出窗口中包含以下文本 1
  • 从 asp.net mvc ajax 调用 wcf

    我有两个应用程序 第一个是 WCF 服务 第二个是 asp net MVC 3 应用程序 在 WCF 应用程序中我有一个界面 ServiceContract public interface IService1 OperationContr
  • WCF 缓存解决方案 - 需要建议

    我工作的公司正在寻求实施缓存解决方案 我们托管了多个 WCF Web 服务 并且需要缓存某些可以持久保存和获取的值 无论客户端与服务的会话如何 我正在研究以下技术 缓存应用程序块 4 1 使用 HttpRuntime 缓存的 WCF TCP
  • 堆内存问题

    有一个 WCF 自托管服务必须在 99 的时间内正常工作 有时我们会遇到这样的记忆问题 但问题发生后 服务一切正常 我们该如何处理这个问题 任何关于提供能够在不同情况下生存的强大服务的提示和要点都非常受欢迎 我不太确定问题出在哪里 但内存泄
  • 无法从 java 发送 48681 字节消息以保护 wcf 服务

    我必须使用相互身份验证从 java 调用安全的 WCF 服务 一切工作正常 除了我无法发送大小超过 48680 字节的消息 因此 48680 字节的消息已成功发送 但 48681 字节的消息未成功发送 并且 java 应用程序因读取超时异常
  • Visual Studio 2010 库链接错误

    当我尝试在项目中使用 DCMTK MT 库时 出现以下链接错误 我确信这些错误与VS2010的ws2 32 lib wsock32 lib netapi32 lib有关 但我已经将这三个库添加到项目属性中 您可以看到库已被搜索 如下所示 这
  • 调试WCF时无法自动单步进入服务器

    我得到了可怕的 无法自动进入服务器 无法调试远程过程 这通常表明服务器上尚未启用调试 现在 我一直在读我需要添加
  • 尝试在 Expression-Blend 4 中打开在 Visual Studio 2010 中创建的 WPF 项目时出现问题

    我在 VS 2010 中创建 WPF 项目 在完成功能性 GUI 的工作后 我想在 Blend 4 中编辑控件模板 但是当我在 Blend 中以 DesignMode 打开项目时 他告诉我 无效的 XAML 在结果窗口中他写道 Window
  • Visual Studio 2010:如何重新映射 F2 来重命名文件而不是打开对象浏览器

    In Visual Studio 2010 Solution Explorer tree view how can I remap the F2 key to Rename the Selected File rather than ope
  • WCF 数据服务错误处理

    我创建了一个带有服务操作的WCF数据服务 我想生成一种业务异常 我尝试生成WebFaultException但我不知道当服务操作抛出此错误时如何在客户端捕获此错误 这是我模拟异常的服务操作 WebGet public void Genera
  • Android Json结果处理

    我有这样的 Json 结果 array getJSONObject j 执行代码 WAT2 FreeIssuePrefix DisPaySchedulePrefix NextFreeIssueNo 1 NextReturnNo 20 Upl
  • 使用 PowerShell 修改 Visual Studio 解决方案和项目文件

    我们目前正在重新组织源代码 将内容移动到新目录中 结构 这会影响我们的 Visual Studio 解决方案和项目文件 其中诸如程序集引用 可能的输出目录 构建前和构建后事件等 必须更新以反映我们的更改 由于我们有许多解决方案和项目 我希望
  • 检查另一种形式的线程是否仍在运行

    我有一个涉及两个窗体的 Windows 窗体应用程序 子表单用于将数据导出到 CSV 文件 并使用后台工作者写入文件 当这种情况发生时 我隐藏了表格 当后台工作程序运行时 父窗体仍然处于活动状态 因此即使后台工作程序正在写入文件 用户也可以
  • 在方法/数据成员中向 WCF 添加限制

    我是 WCF 新手 我尝试对数据成员添加限制 例如在这个方法中 DataMember public string StringValue get return stringValue set stringValue value 我想设置最大
  • 如何在 C# 中向肥皂信封添加命名空间

    我想向我的肥皂信封添加命名空间设置 我想在 IClientMessageInspector 的 BeforeSendRequest 中更改它 或者您有更优雅的方法 例如
  • 我可以设置通过 Visual Studio 运行的应用程序将显示在哪个显示器上吗?

    我使用多个显示器 并且更喜欢在中间打开 Visual Studio 并且希望通过 Visual Studio 测试 运行的应用程序在左侧或右侧打开 而不是在代码顶部打开 你认为有一种方法可以做到这一点 那就是自动的吗 可以在选项中的某个位置
  • 多图像选择

    我正在使用 Windows Phone SDK 7 1 C 在 WP7 中制作应用程序 正在使用照片选择器任务 但我想选择 9 张图像 而这里我只能选择一张图像 如何一次选择 9 张图像 请帮助我 这是我的代码 public partial
  • SSRS。如何在table1_Details_Group右侧创建新的行组?

    我正在使用 Microsoft Visual Studio 2013 创建报告 PROBLEM 如果我添加新的Row Group前面会自动添加table1 Details Group 问题 如何更改组的顺序或在右侧添加新组table1 De

随机推荐

  • 从不同用户会话列表中选择最早的日期和时间

    我有一个用户访问会话表 记录网站访问者活动 accessid userid date time url 我正在尝试检索用户 ID 1234 的所有不同会话 以及每个不同会话的最早日期和时间 SELECT DISTINCT accessid
  • CS7036 C# 没有给出与 c# 所需的形式参数相对应的参数

    我创建了 bool dropIndexes 来 void ladujZBazy 并创建了 if dropIndexes 因为当我检查 checkListBox1 中列表中的项目并使用 textBox1 搜索某些项目时 我之前的检查消失了 我
  • 修饰符 static 只允许在常量变量声明中使用

    我有一个内部类 用于存储我用于游戏的控件的信息 现在我想在其中存储一个静态 ArrayList 其中包含所有控件的名称 但我收到此错误 修饰符 static 只允许在常量变量声明中 private class Control public
  • 获取鼠标指针下的单词

    根据这个 使用 JavaScript 获取光标下的单词 链接我可以在鼠标指针下获取单词 这对于英语来说很好 我改变它 阿拉伯语 p p Word span span
  • Android 上的 ZXing 入门

    我正在尝试将 ZXing 添加到我的项目中 添加一个按下时调用扫描仪的按钮 我找到了这个 http groups google com group android developers browse thread thread 788eb5
  • 如何重命名 Oracle XMLTYPE 节点

    我在 PL SQL 中有一个 XMLType 我需要重命名一些节点和一些值 例如
  • 无法安装 Flask-Mail

    当用户在我的网站上注册时 我尝试使用 Flask 发送电子邮件 我使用了命令pip install Flask Mail安装 但是 我收到以下可能版本不匹配的错误 Downloading unpacking Flask mail Downl
  • Angular2 的 Http.post 在 POST 方法调用的响应中不返回标头

    我正在调用 REST 端点 我想添加资源 如下 但是 当我的服务调用 Http 的 post 方法时 它将调用请求 但不会返回响应的标头 至少 我遇到了 Response 实例的空 headers 对象 我确实期望响应标头 特别是 我希望
  • 如何从 VBA 函数返回结果

    如何从函数返回结果 例如 Public Function test As Integer return 1 End Function 这会产生编译错误 如何让这个函数返回一个整数 对于非对象返回类型 您必须将值分配给函数的名称 如下所示 P
  • 从数据框中按类别选择随机行?

    我有一个数据框如下 Category Name Value 我如何选择每个类别 5 个随机名称 使用sample使用所有行作为可能的候选行返回随机行 但是 我想指定每个类别的随机行数 有什么建议么 Update 我愿意使用ddply 在没有
  • Rabin-Karp 中的滚动哈希

    我正在尝试实现 Rabin Karp 来查找子字符串 我陷入了滚动哈希 试图使用维基百科中建议的公式 define MOD 1000000007 unsigned long long rolling hash const char str
  • 我不小心删除了 phpMyAdmin 中的管理员帐户。如何重新授予 root@localhost 权限?

    我不小心删除了 phpMyAdmin 中的管理员帐户 现在 我根本无能为力 但是 我可以访问控制台 并且它可以让我登录 我如何重新向 root localhost 授予权限 有一个简单易行的方法可以解决这个问题 您需要停止 mysql 并转
  • 根据 WooCommerce 中的自定义结账单选按钮和文本字段设置动态费用

    我正在尝试创建一个自定义结帐单选按钮 以百分比计算餐厅小费 对于单选按钮 静态值工作正常 但是 我想获取小计并计算自定义单选按钮单击的一定百分比 这是我的代码 add action woocommerce after checkout bi
  • 如何获取所选的特定项目?

    附截图 我正在学习 AngularJS 我找不到方法来删除单击 删除 按钮的所选项目 有什么办法可以做到吗 附代码 ul class unstyled li li ul
  • Angular2中如何获取GET参数?

    通过访问myproject dev people filter 5Bindustry 5D finance filter 5BstartWith 5D a Angular2将url指向myproject dev people 这是我的路线配
  • 这是在 java 中将 FocusListener 添加到 JTextFields 的正确方法吗?

    我有数百个JTextFields在我的 Java 应用程序中 我想添加FocusListener对所有这些设置水平对齐方式的文本和添加焦点监听器在每个文本字段上 所以 我做了这个方法 而且效果很好 但我只是想知道这种方法是否正确 或者有什么
  • 使用 sed 的追加/更改/插入而不带换行符

    我想替换 SED 中的模式空间 我可以这样做s hello world 但我可以使用c以某种方式命令 在我的 sed 脚本中不使用换行符 我并不完全清楚这是否可能 同样的问题a and i命令 如果你的 shell 是 bash 这里有一个
  • Rails:调用“id”主键方法时出现“堆栈级别太深”错误

    这是转发于另一个问题 这次隔离比较好 在我的environment rb 文件中 我更改了这一行 config time zone UTC 到这一行 config active record default timezone utc 于是乎
  • 如何在导航抽屉中的两个片段之间通信数据

    我有一个导航抽屉 其中包含不同的片段 每个项目显示一个片段 我想将数据从一个片段传递到另一个片段 我只有一个包含导航抽屉的活动 其中有一个片段列表 我尝试了很多解决方案 捆绑和意图 但我无法解决我的问题 任何人都可以帮我吗 这是我的第一个片
  • 如何在 Windows Phone 7 中使用 BinaryFormatter

    如何在 Windows Phone 7 中使用 BinaryFormatter 我用这个using System Runtime Serialization Formatters Binary在 service1 svc cs 中 但我无法