C# [匿名\通用] 对象到 byte[] 没有 BinaryFormatter [在 .NET 4.5 中]?

2024-02-12

BinaryFormatter效果很好,但不存在于 .NET 4.5 的可移植类库中。

我读到它是在 .NET 4.6 Portable 中。我还没有证实这一点 因为当我在项目设置中更改为 4.6 时,我收到警告 消息“4.5 将自动成为目标”,除非我取消选择 Silverlight、WindowsPhone、Windows Universal、Xamarin 等),因此如果我不针对其他平台,我只能针对 .NET 4.6 Portable,从而达不到目的。

这是我原来的 BinarySerializer (可以工作,但不能使用 PCL,因为使用BinaryFormatter)

private string BinarySerialize(object Source)
{
    byte[] serializedObject;
    using (MemoryStream stream = new MemoryStream())
    {
        BinaryFormatter formatter = new BinaryFormatter();
        formatter.Serialize(stream, Source);
        serializedObject = stream.ToArray();
    }
    return Convert.ToBase64String(serializedObject);
}

所以,话虽这么说,我开始尝试重写我的二进制序列化器以使用BinaryReader and BinaryWriter它们都在 PCL 中可用,但遇到了以下问题:

BinaryWriter,只能处理简单类型(例如string, bool, byte, long, int等)和Streams,所以我想我需要找到一种方法将匿名对象转换为Stream.

我走在正确的道路上吗?如何转换直到运行时才知道的类型(例如System.Delegate- 是的,我知道序列化委托会产生脆弱的代码)或匿名\通用类型到其等效的字节数组byte[]?有没有办法直接将对象转换为对象Stream or MemoryStream?

如果这根本不可能,你会建议我如何写一个interface对于我的 BinarySerializer,这样我就可以在我的可移植类库中实现该功能,而实际的BinaryFormatter类实现interface存在于特定于平台的程序集中吗?

仅供参考,这是一个 MVVM 项目,其中“序列化器”被视为派生自ValueConverter抽象基类。序列化仅用于将实例化任务传输到目的地执行。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# [匿名\通用] 对象到 byte[] 没有 BinaryFormatter [在 .NET 4.5 中]? 的相关文章

  • Web UI 中的 .Result 出现死锁

    我正在阅读以下主题http blog stephencleary com 2012 07 dont block on async code html http blog stephencleary com 2012 07 dont bloc
  • 如何调试参数化 SQL 查询

    我使用 C 连接到数据库 然后使用 Ad hoc SQL 来获取数据 这个简单的 SQL 查询非常方便调试 因为我可以记录 SQL 查询字符串 如果我使用参数化 SQL 查询命令 有没有办法记录 sql 查询字符串以进行调试 我想就是这样的
  • LINQ to XML - 如何正确使用 XDocument

    现在我首先要说的是 这确实是一项任务 然而 在我遇到 Linq to XML 语法之前 我几乎已经完成了它 我有 2 个课程 曲目和 CD 现在作为作业的一部分 我创建了一张 CD 然后向其中添加了一些曲目 在搜索了大量完美解释了如何从 x
  • 将 2D 数组映射到 1D 数组

    我想用一维数组来表示一个二维数组 函数将传递两个索引 x y 和要存储的值 这两个索引代表一维数组的单个元素 并相应地设置它 我知道一维数组需要具有 arrayWidth arrayHeight 的大小 但我不知道如何设置每个元素 例如 如
  • 如何在 C# 事件中区分更改是由代码还是由用户进行?

    我有一个简单的TextBox一开始是空的 我有一个简单的事件 TextChanged 可以知道用户何时更改了其中的任何内容TextBox 但是 如果我自己在代码中对其执行任何操作 该事件就会触发 喜欢设置textbox Text Test
  • boost线程在中断时不打印退出消息

    我有这段代码用于执行三个线程 其中第二个线程应在按 Enter 时中断并打印退出消息 void input val DO STUFF return void process val DO STUFF try cout lt lt waiti
  • 实体框架代码优先 - 在另一个文件中配置

    使用 Fluent API 将表到实体的映射分开的最佳方法是什么 以便它全部位于单独的类中 而不是内联在 OnModelCreating 方法中 我目前在做什么 public class FooContext DbContext prote
  • 在 Windows Phone 上启动 pdf 文件时出现 System.Runtime.InteropServices.COMException

    我正在尝试使用我之前在另一个应用程序上使用过的以下工作代码打开 pdf 文件 但这一次 当流程到达此行时 我收到 System Runtime InteropServices COMException Windows System Laun
  • 使用 VSTO 更改 Outlook 设置

    我刚刚花了大约 4 个小时试图弄清楚如何以编程方式检索 设置 Microsoft Outlook 2010 的 Outlook 设置 我所说的 设置 是指文件 选项 邮件下的设置 我想做的是检索用户设置的设置列表 自动化我们每天需要在某些消
  • 组合 Datepicker 和 Timepicker 值 Win 8.1

    我试图同时使用 Datepicker Timepicker 来返回可以存储在数据库中的 DateTime 例如 我想要安排会议的开始日期和结束日期 如果适用 我将如何将这些值组合成 SQL 数据库可以处理的正确格式 任何反馈都会很棒 我让这
  • 控制台应用程序 .net Core 2.0 的配置

    在 net Core 1 中我们可以这样做 IConfiguration config new ConfigurationBuilder AddJsonFile appsettings json true true Build 这样就可以使
  • 捕获当前正在播放的声音

    是否可以捕获计算机上当前播放的声音 如果能够将其保存为 mp3 就好了 但我认为这样做会存在一些法律问题 所以 wav 也可以 我环顾四周 有人建议使用虚拟音频线之类的东西 在 C 中捕获声音输出 https stackoverflow c
  • 为什么 writeObject 抛出 java.io.NotSerializedException 以及如何修复它?

    我有这个异常 我不明白为什么会抛出它 或者我应该如何处理它 try os writeObject element catch IOException e e printStackTrace Where element is a Transf
  • 在 C# 中赋值后如何保留有关对象的信息?

    我一直在问我的想法可能是解决方案 https stackoverflow com questions 35254467 is it possible in c sharp to get the attributes attached to
  • 如何在 C++ 中使用 PI 常数

    我想在一些 C 程序中使用 PI 常数和三角函数 我得到三角函数include
  • 如何从枚举中选择随机值?

    给定 C 中的任意枚举 如何选择随机值 我没有找到这个非常基本的问题 我会在一分钟内发布我的答案作为任何人的参考 但请随意发布你自己的答案 Array values Enum GetValues typeof Bar Random rand
  • SSBO 是更大的 UBO?

    我目前正在 OpenGL 4 3 中使用 UBO 进行渲染 以将所有常量数据存储在 GPU 上 诸如材料描述 矩阵等内容 它可以工作 但是 UBO 的小尺寸 我的实现为 64kB 迫使我多次切换缓冲区 减慢渲染速度 我正在寻找类似的方法来存
  • Windows 上 libcurl 的静态库[重复]

    这个问题在这里已经有答案了 如何将此库 libcurl 静态链接到 exe 我努力了 disable share enable static 没有帮助 我使用的是MingW32 有没有一种简单的方法来静态链接这个库 这样我的应用程序就不再有
  • ASP.NET Core:会话 ID 始终变化

    今天启动了一个全新的 ASP NET Core 网站 按照说明添加会话 我们在索引页上打印出会话 ID 它始终是唯一的 我认为这可能是 cookie 合规性 所以我在 Chrome 的高级设置和调试器中删除了所有 cookie 但横幅不会再
  • 当我读取 500MB FileStream 时出现 OutOfMemoryException

    我使用 Filestream 读取大文件 gt 500 MB 但出现 OutOfMemoryException 任何有关它的解决方案 我的代码是 using var fs3 new FileStream filePath2 FileMode

随机推荐

  • 使用keras加载模型并为其参数分配新值

    我正在尝试使用 keras 存储模型 然后加载它以重新训练 我的问题是加载模型时如何将学习率设置为新值 这是我的代码 Save a model model Sequential model add Dense 64 kernel initi
  • 绘制自定义组件

    这是两个问题 1 是最重要的paint的成员Component使用代号为 1 的简单 2D 图形游戏的最佳方法是什么 或者我什至不应该尝试它 2 为什么下面的代码会画出我的Component只是立即删除它 我像这样初始化我的组件 prote
  • 实体框架 ORA-00932:不一致的数据类型:“'预期 CLOB 为 CHAR”

    Oracle ManagedDataAccess EntityFramework 6 122 1 0 库用于从 MVC ASP Net 应用程序访问 Oracle 数据库 这是截至 2017 年 11 月 14 日来自 NuGet 的最新库
  • 在C程序中,是否可以将所有全局变量重置为默认值?

    我有一个旧版 C Linux 应用程序需要重用 该应用程序使用了很多全局变量 我想重用该应用程序的主要方法并在循环中调用它 我发现当我在循环中调用 main 方法 重命名为 callableMain 时 应用程序行为不一致 因为先前迭代中设
  • 从 HTML 创建自动化、严格设计的多页 PDF 报告 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有哪些基于 Python 的优秀选项可以从 HTML 创建严格设计的 PDF 报告 我附上了 PDF
  • 将base64图像发布到android中的php服务器

    我正在开发一个模块 用户可以在其中将图像上传到服务器 为此 我必须将所选图像更改为 Base64 转换后 我必须使用 Json POST 方法上传图像 但每次应用程序崩溃并且 Logcat 都会出现此错误 Error converting
  • 如何设置 ReSharper 默认公司和版权?

    我刚刚安装了 Stylecop 4 5RC 和 ReSharper 当我创建一个新类时 我发现我现在是合规的 耶 但我希望该公司是我的公司 而不是 Microsoft 我还有太多事情要做 不必担心更新版权文本 默认情况下如何填写这些
  • Gradle 扩展:对于具有简单值的属性,可以使用普通 Kotlin 类型代替 Property 吗?

    The Gradle 文档用于惰性配置 https docs gradle org current userguide lazy configuration html指出在扩展 DSL 类中 诸如var someProperty defau
  • 无法在android中连接websocket和wss

    我正在尝试使用 org java websocket client WebSocketClient API 在 android 中连接安全 websocket 连接 wss 但无法与 https 连接 然而它与 ws 这是我的代码 priv
  • 如何旋转 pyplot.table 中的列标题?

    我正在 matplotlib 中创建一个表 但表头是长字符串 表值是只有几位数字的数字 这给我留下了两个不好的选择 要么我的表格比必要的宽得多 要么我的标题重叠 为了解决这个问题 我想旋转表格标题 可能最多 90 度 换句话说 我想做thi
  • 使用存储过程作为业务逻辑层

    我工作的公司目前正在使用存储过程 在 MsSQL 服务器后端 作为其业务逻辑层 实际的业务逻辑 DLL 仅调用 sProcs 并基本上管理 UI 事件 数据绑定等 我认为设置有问题 尽管我不确定如何向同事解释 顺便说一句 该系统有效 我工作
  • Laravel 8 错误类“App\User”未找到

    我的 auth php 文件 providers gt users gt driver gt eloquent model gt App Models User class 用户控制器文件
  • 使用 python 带有自签名证书的 ssl

    我正在尝试使用我的自签名证书在 python 中构建一个简单的服务器 我使用 makecert 创建了 cer pfx pvk 文件 context ssl create default context ssl Purpose CLIENT
  • C++ 中的彩色输出

    有没有办法使用打印彩色输出iostream和Xcode 例如 我希望能够打印Hello World with Hello red World蓝色和 黄色的 我怎样才能做到这一点 您需要终端颜色代码 对于 Linux 如下 您的系统可能有所不
  • 使用 iTextSharp 阅读 PDF 时出现奇怪的字符

    我正在使用 iTextSharp 来阅读 PDF 文件 我尝试使用以下简单的代码阅读第一页中的全文 var pdfReader new PdfReader
  • 如何实现递归依赖于自身的反应式香蕉行为?

    我有一个行为 我想根据事件的发生和行为的当前值来更改其值 在下面的示例中 我有两个计数器 它们根据布尔行为是 True 还是 False 进行更新 事实上 这段代码崩溃了 lt
  • 什么是非法反射访问?

    Java 9 中存在很多关于非法反射访问的问题 我发现了很多关于解决错误消息的讨论 但我很想知道非法反射访问实际上是什么 所以我的问题是 什么定义了非法反射访问以及什么情况会触发警告 我认为它与 Java 9 中引入的封装原则有关 但我找不
  • GCM PhoneGap 插件 消息错误

    我正在使用phonegap在android上实现GCM 在我向设备发送消息之前 该过程运行良好 当我的设备收到该消息时 它会关闭 并显示我的应用程序出现内部错误的消息 该错误消息来自 dalvik VM 我仍在使用插件附带的演示应用程序进行
  • 使用 Python 删除文件中的括号和文本

    我有一个文本文件 其中包含如下内容 Cl1 Cl 0 21988 6 0 2500 0 15016 5 0 01587 14 Uani 1 2 d S T P O1 O 1 05820 17 0 2500 0 48327 16 0 0206
  • C# [匿名\通用] 对象到 byte[] 没有 BinaryFormatter [在 .NET 4.5 中]?

    BinaryFormatter效果很好 但不存在于 NET 4 5 的可移植类库中 我读到它是在 NET 4 6 Portable 中 我还没有证实这一点 因为当我在项目设置中更改为 4 6 时 我收到警告 消息 4 5 将自动成为目标 除