与 protobuf-net 和 C# 的接口

2023-12-10

有谁知道建立一个的正确方法是什么合约原型 for an 界面?

我收到以下异常“一旦生成序列化器,类型就无法更改“仅使用属性。

使用的代码:

    [ProtoContract]
    public class Lesson5TestClass2 : ILesson5TestInteface1
    {
        [ProtoMember(1)]
        public string Name { get; set; }
        [ProtoMember(2)]
        public string Phone { get; set; }
    }

    [ProtoContract]
    [ProtoInclude(1000, typeof(Lesson5TestClass2))]
    public interface ILesson5TestInteface1
    {
        [ProtoMember(1)]
        string Name { get; set; }
        [ProtoMember(2)]
        string Phone { get; set; }
    }

仅当添加以下设置时,我才能反序列化:

  RuntimeTypeModel.Default.Add(typeof (ILesson5TestInteface1), true)
      .AddSubType(50, typeof(Lesson5TestClass2));

我真的很想仅使用属性来配置它。

我正在使用 NuGet 的 protobuf-net r470。

顺便说一句:这个例子来自一组“测试经验教训”,展示了如何为我的同事使用 protobuf-net 进行序列化。

谢谢阅读 :)


有趣的;是的,上面好像有东西。然而,它does当暴露为成员时工作,即

[ProtoContract]
class Wrapper
{
    [ProtoMember(1)]
    public ILesson5TestInteface1 Content { get; set; }
}
static class Program
{
    static void Main()
    {
        Wrapper obj = new Wrapper
        {
            Content = new Lesson5TestClass2()
        }, clone;
        using(var ms = new MemoryStream())
        {
            Serializer.Serialize(ms, obj);
            ms.Position = 0;
            clone = Serializer.Deserialize<Wrapper>(ms);
        }
        // here clone.Content *is* a Lesson5TestClass2 instance
    }
}

我将不得不看看接口支持的情况如何root object.

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

与 protobuf-net 和 C# 的接口 的相关文章

  • C# 中一次性对象克隆会导致内存泄漏吗?

    检查这个代码 class someclass IDisposable private Bitmap imageObject public void ImageCrop int X int Y int W int H imageObject
  • 链接 .Net 程序集

    这都是假设 所以请耐心等待 假设我正在用 C 编写一个名为 Foo 的工具 输出是 foo exe 我发现了一些我喜欢使用的非常棒的库 称为 Bar 我可以在我的项目中将其引用为 bar dll 当我构建项目时 我的输出目录中有 foo e
  • 用于在标头更改时重新编译的简单 C 项目的示例 makefile

    有谁有完整的 makefile 可以执行以下操作 如果 HEADER 文件发生更改 则重建项目 cpp 文件在 makefile 中列出 头文件未在 makefile 中列出 头文件允许与 cpp 文件具有不同的名称 部分cpp文件没有头文
  • platformnotsupportedException :XSLCompiledTransform.Load(xslt) 未在 .net Core 2.1 目标框架中加载带有 的 xslt 文件

    我有一个 xml 文件 需要将其转换为 txt 为此我使用了 xslt 转换 我的 xslt 转换文件包含一些支持 javascript 函数 如果我在 net Framework 4 5 及更高版本中运行代码 我可以成功转换文件 但相同的
  • Libev,如何将参数传递给相关回调

    我陷入了 libev 中争论的境地 通常 libev 在类似的函数中接收包 接收回调 没关系 但是实际操作中 我们需要派遣一个亲戚 写回调 根据收到的包裹处理具体工作 例如 S RECV MSG pstRecvMsg S RECV MSG
  • 来自嵌入图像的 BitmapSource

    我的目标是在 WPF 窗口上重写 OnRender 方法中绘制图像 someImage png 它是嵌入资源 protected override void OnRender System Windows Media DrawingCont
  • 如何在 Javascript 中连接 C# ActiveX 事件处理程序

    我尝试使用几个代码片段将 ActiveX 对象与 Javascript 事件处理程序挂钩 我无法确定为什么事件处理程序没有被调用 带有项目的 Github 存储库 https github com JesseKPhillips Csharp
  • 在 azure blob 存储中就地创建 zip 文件

    我将文件存储在 Blob 存储帐户内的一个容器中 我需要在第二个容器中创建一个 zip 文件 其中包含第一个容器中的文件 我有一个使用辅助角色和 DotNetZip 工作的解决方案 但由于 zip 文件的大小最终可能达到 1GB 我担心在进
  • 如何在多线程应用程序中安全地填充数据并 Refresh() DataGridView?

    我的应用程序有一个 DataGridView 对象和一个 MousePos 类型的列表 MousePos 是一个自定义类 它保存鼠标 X Y 坐标 类型为 Point 和该位置的运行计数 我有一个线程 System Timers Timer
  • SQLAPI++ 的免费替代品? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何免费 也许是开源 的替代品SQLAPI http www sqlapi com 这个库看起来
  • ASP.NET Core 中间件与过滤器

    在阅读了 ASP NET Core 中间件之后 我对何时应该使用过滤器以及何时应该使用中间件感到困惑 因为它们似乎实现了相同的目标 什么时候应该使用中间件而不是过滤器 9频道有一个关于此的视频 ASP NET 怪物 91 中间件与过滤器 h
  • 读取依赖步行者输出

    I am having some problems using one of the Dlls in my application and I ran dependency walker on it i am not sure how to
  • 以编程方式创建 Blob 存储容器

    我有一个要求 即在创建公司时 在我的 storageaccount 中创建关联的 blob 存储容器 并将容器名称设置为传入的字符串变量 我已尝试以下操作 public void AddCompanyStorage string subDo
  • Xamarin Forms Binding - 访问父属性

    我无法访问页面的 ViewModel 属性以便将其绑定到 IsVisible 属性 如果我不设置 BindingContext 我只能绑定它 有没有办法可以在设置 BindingContext 的同时访问页面的 viewmodel root
  • 调用 .ToArray() 时出现 ArgumentException

    我有一个经常被清除的列表 代码完全是这样的 VisitorAgent toPersist List
  • .Net Reactive Extensions Framework (Rx) 是否考虑拓扑顺序?

    Net 反应式扩展框架是否按拓扑顺序传播通知以最大限度地减少更新量 就像 Scala Rx 所做的那样 Net 反应式扩展 Rx 是否可以 https github com lihaoyi scala rx wiki How it Work
  • 从后面的代码添加外部 css 文件

    我有一个 CSS 文件 例如 SomeStyle css 我是否可以将此样式表文档从其代码隐藏应用到 aspx 页面 您可以将文字控件添加到标头控件中 Page Header Controls Add new System Web UI L
  • 声明一个负长度的数组

    当创建负长度数组时 C 中会发生什么 例如 int n 35 int testArray n for int i 0 i lt 10 i testArray i i 1 这段代码将编译 并且启用 Wall 时不会出现警告 并且似乎您可以分配
  • 如何在 ASP.NET Core 中注入泛型的依赖关系

    我有以下存储库类 public class TestRepository Repository
  • 嵌入式linux编写AT命令

    我在向 GSM 模块写入 AT 命令时遇到问题 当我使用 minicom b 115200 D dev ttySP0 term vt100 时它工作完美 但我不知道如何在 C 代码中做同样的事情 我没有收到任何错误 但模块对命令没有反应 有

随机推荐

  • 将文本字符串转换为电子表格中的公式

    我正在尝试开发一个交互式电子表格 为预算文件创建叙述 将会有多种选择 一旦用户选择了一个项目 它将帮助他们计算总数 我想设置它们填写的选项框 例如 将允许输入 B1 B4 四个单元格 我将为四个单元格分别命名 即 A B C D 在参考文档
  • 将整数数组映射到嵌套数组访问

    有没有一种方法可以使用本身存储在数组中的索引来动态访问嵌套数组 主数组 矩阵嵌套可以是可变的 例如2 4 100 Example my array 1 2 3 4 5 6 7 8 9 10 11 12 my array access usi
  • LESS 无声多行注释

    有没有办法创建silentLESS 中的多行注释 我想要与 comment 相同的行为 但对于多行字符串 正如 harry 已经明确指出的 x and clean css选项也会删除评论 从版本 2 开始 clean css 选项已移至插件
  • 如何在 JavaScript 中使用 toLocaleString() 和 tofixed(2)

    我怎样才能在 JavaScript 中做到这一点 var num 2046430 num toLocaleString will give you 2 046 430 我尝试过的是 var num 2046430 num toLocaleS
  • 带有 MAX(n.property) 的 Cypher 返回节点

    With Cypher 我试图返回得分最高的节点 然而 它要么只返回分数 而没有任何 id 到节点 我需要在查询中添加什么 start n node WHERE HAS n score return MAX n score 该解决方案应该为
  • 找不到 Oracle jdbc 驱动程序

    我对 java 和数据库连接很陌生 我正在尝试与 Oracle 数据库建立一个非常简单的连接 当我运行这段代码时 import java sql import oracle jdbc pool OracleDataSource public
  • Nodejs 上的 Javascript ES6:类型错误:对象不是构造函数

    我有这个样本班sync js作为我项目中某处的模块 use strict export default class Sync constructor dbConnection this dbConnection dbConnection t
  • jquery validator - 仅验证可见元素

    我有一个隐藏 显示 div 的单选按钮 所有可见元素都是 必需的 但是在验证规则之后添加ignore hidden 不起作用 这是代码
  • 将序列划分为唯一对的集合

    我需要一个 of 函数 它可以将序列分成对 然后将它们组合起来 以便组合中的所有元素都是唯一的 我已经尝试了多种使用 python 的 itertools 的方法 但还没有找到解决方案 为了说明这一点 我想要一个采用以下序列的函数 1 2
  • 使用 UserDefaults 保存图像数组

    我有一个应用程序 用户可以在其中拍照 拍照后应将其保存到UserDefaults 我不断收到此错误 cannot invoke setObject with an argument list of type UIImage type for
  • 如何获取android上每个cpu核心的使用情况

    我在 Android 上开发了一个小部件 它显示许多有用的信息 我正在尝试修改此方法以返回一个 cpu 核心的使用百分比 以便获得每个核心的使用百分比 在我的 HTC One X 上 我在 proc stat 中有 cpu 183549 1
  • 如何将 scikit-learn 数据集写入 csv 文件

    我可以从以下位置加载数据集scikit learn using from sklearn import datasets data datasets load boston print data 我想做的是将这个数据集写入一个平面文件 cs
  • 无法对实体框架 6 使用 MySQL 连接

    我正在尝试将实体框架 6 与 MySQL 一起使用 我确实为 Visual Studio 1 1 1 和 MySQL Net 连接器 6 8 3 安装了 MySQL 插件 问题是当我尝试创建新的 ADO NET 实体模型时 我无法选择 My
  • 为什么我不能在此三元运算中将 int 转换为字符串

    为了简洁起见 我留下了一些代码 int id Convert ToInt32 Page RouteData Values id var q db Categories SingleOrDefault x gt x categoryID id
  • Android 地点选择器启动后立即关闭

    我正在开发一个android应用程序作为项目的一部分 并使用Google地方API来根据位置显示感兴趣的地方 我正在使用 PlacePicker Inentbuilder 来完成此任务 但是 当应用程序运行时 地点选择器会启动 然后立即关闭
  • 在 WPF 应用程序中嵌入 Unity3D 应用程序

    我想在 WPF 中开发一个新的 CAD 软件 而不是使用 WPF 3D 是否可以使用 Unity3D 作为我的图形引擎 能够根据 WPF 中的数据对象旋转 平移 缩放和查看 3D 图形对象 我问这个问题的原因是 Unity 是一个游戏引擎
  • 重写 WPF 控件

    我有一个来自第三方的 WPF 控件 ParentWPFControl 我想继承该控件 我们将其称为子类 ChildWPFControl 在这个过程中 我计划重写一些后端逻辑和部分前端样式 前者我可以做得很好 但后者我有问题 我尝试对子国家
  • java.security.cert.CertPathValidatorException:找不到证书路径的信任锚。在 API 上小于 24

    com android volley NoConnectionError javax net ssl SSLHandshakeException java security cert CertPathValidatorException T
  • 删除其中没有资源的 Azure 资源组

    我正在尝试查找其中没有资源的所有 Azure RM 资源组 并使用 PowerShell 删除这些资源组 使用 Portal 删除非常耗时 使用 powershell 我可以通过使用以下代码来完成 在 powershell 中是否有更好的方
  • 与 protobuf-net 和 C# 的接口

    有谁知道建立一个的正确方法是什么合约原型 for an 界面 我收到以下异常 一旦生成序列化器 类型就无法更改 仅使用属性 使用的代码 ProtoContract public class Lesson5TestClass2 ILesson