数据契约序列化器 - 如何省略集合的外部元素

2024-05-12

如何序列化没有外部元素的列表使用数据契约序列化器?我正在使用.Net 3.5。我有一个类,其中包含一个列表,除其他外,我希望在没有外部元素的情况下序列化该列表,以符合相关的 XSD:

[DataContract(Name="MyClass")]
public class MyClass
{
...
[DataMember(Name="Parameters")]
public List<Parameter> Parameters;
...
}

[DataContract(Name="Parameter")]
public struct Parameter
{
    [DataMember(Name="ValueName")]string ValueName;
    [DataMember(Name="Value")]int Value;
    public Parameter(string ValueName, int Value)
    {
        this.ValueName = ValueName;
        this.Value = Value;            
    }
}

上面的序列化为(假设列表中只有一个参数):

<MyClass>
    <Parameters>
       <Parameter>
           <ValueName></ValueName>
           <Value></Value>
       </Parameter>
    </Parameters>
</MyClass>

我想将其序列化如下:

<MyClass> 
       <Parameter>
           <ValueName></ValueName>
           <Value></Value>
       </Parameter>
</MyClass>

使用 XmlSerializer,我可以通过将 [XmlElement] 应用于列表来完成此操作:

[XmlElement ("Parameter")]
public List<Parameter> Parameters;

但是我不想使用XmlSerializer因为我的类有一些不适合序列化的属性,我希望使用 [OnSerializing] 系列属性来处理这些属性。

Thanks.


The DataContract序列化程序不允许对结果 XML 进行这种程度的控制,您将不得不使用XmlSerializer为了实现这一目标。

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

数据契约序列化器 - 如何省略集合的外部元素 的相关文章

  • 在 C++ 中迭代连续枚举值的最简单方法[重复]

    这个问题在这里已经有答案了 什么是首选simple在 C 中迭代具有连续值的枚举的方法 我发现以前关于这个主题的问题涉及创建自定义operator 等等 但这似乎有点矫枉过正 到目前为止 我想出的最好的办法是 enum FOO BAR BL
  • 将可见性属性绑定到变量

    我有一个Border with Label里面一个Window
  • 使用 ITextSharp 从内存流附加 PDF 文件时遇到问题

    我在附加内存中创建的 PDF 文件并将其附加到电子邮件模板时遇到问题 电子邮件没有任何问题 但没有附件 我不明白为什么会发生这种情况 这是该过程的完整代码 ExtendedEmailTemplate emailTemp new Extend
  • 将多种类型存储为 C++ 字典中的值?

    我想编写一个行为几乎等同于 Python 字典的 C 对象 C 的std map and std unordered map容纳了 Python 字典已有的一些功能 但缺乏最重要的功能之一 即能够添加任意对象和类型 即使不可能 您离实现 P
  • Mono C# 获取应用程序路径

    我正在寻找我的应用程序的目录 它似乎与常规 c 不同 As in Path GetDirectoryName Application ExecutablePath 不管用 一种正确的跨平台解决方案是 Path GetDirectoryNam
  • 剃刀 2 到剃刀 3 MVC 5

    我一直在开发 MVC 4 解决方案 并且一直在尝试将其升级到 MVC 5 我已按照概述的步骤操作here http www asp net mvc tutorials mvc 5 how to upgrade an aspnet mvc 4
  • 通过 WCF 提供类对象的数组或列表

    任何提供自定义类对象列表或数组的 WCF 客户端服务器示例都会对我有所帮助 但这是我到目前为止所得到的 这是我想提供的班级系统 namespace NEN Server FS Serializable public class XFS pr
  • 为什么表达式树不能包含命名参数规范?

    使用 AutoMapper 我找到了一个非常适合命名参数的地方 ForMember s gt s MyProperty opt gt opt MapFrom s gt BuildMyProperty s isAdvanced false 但
  • 如何在 Mac OS X 中获取 aio 信号处理程序的用户数据

    我尝试在 Mac OS X 下使用 aio 函数进行异步文件 IO 但在将某种形式的用户数据输入信号处理程序时遇到问题 这是设置操作的代码 class aio context public aio context int fildes bo
  • 在 C# 中将 Exe 文件作为嵌入式资源运行

    我有一个第 3 方 EXE 我只需要从我的 C 应用程序运行它 我的主要目标是对我的 C 文件中的第 3 方可执行文件进行版权保护 有没有更好的方法来做到这一点 我怎样才能做到这一点 首先将嵌入的可执行文件作为资源文件添加到您现有的资源文件
  • .NET 4.0 进程中的 clr.dll!LogHelp_TerminateOnAssert

    背景 我正在开发一个基于 WinForm 的 NET 4 0 桌面应用程序 该应用程序几乎没有线程和计时器 并对用户控件使用一些 GDI 处理 在我的开发过程中 我通常会查看 sysinternal 的 Process Explorer 以
  • 保存到会话状态的 DataTable 丢失事件处理程序

    我有一个来自强类型数据集的数据表 该数据集在 TableNewRow 事件上有一个事件处理程序 用于初始化一些日期字段 当我将此表保存到会话状态时 事件处理程序会正常触发 直到表被序列化 在后续请求中 当我从会话状态检索表时 事件处理程序不
  • C# Response.Write pdf 不适用于 Android 浏览器

    我目前在 Android 环境中使用 pdf 导出时遇到了巨大的问题 我正在使用报告查看器控件将报告呈现为字节数组 接下来我使用response binarywrite方法将字节流输出到浏览器 这适用于所有浏览器以及 iPhone 和 iP
  • 更改 ASP.NET 控件的访问修饰符

    如果我像这样将控件放入 aspx 文件中
  • 将模型和订阅密钥传递给 LuisDialog,而不是通过属性

    我正在编写一个可以说两种语言的机器人 因此 我需要使用两个单独的 LUIS 应用程序 每种语言一个 Bot Framework 中的 LuisDialog 是这样初始化的 来自 Microsoft 的示例 LuisModel c413b2e
  • 如何使用 PostSharp 拦截基类上的方法调用?

    我想提供一个实现System Object ToString使用 PostSharp 到各种类 我创建了一个继承自的方面MethodInterceptionAspect但是OnInvoke调用时不会调用方法EchoDto ToString发
  • JsonSerializer.Deserialize 失败

    考虑代码 using System using System Text Json public class Program public static void Main int id 9 string str id id var u Js
  • 使用 DI 将参数传递给 DbContext

    我想向 DBContext 传递一个附加参数 如下所示 string myParam xx string con connenctionstring services AddDbContext
  • C++中main函数可以调用自身吗?

    谁能告诉我下面的代码有什么问题吗 int main return main 我测试了一下 编译正确 它永远运行 幕后还有什么阴谋吗 TLDR 呼叫main导致未定义的行为 标准中使用的术语以及对程序员和编译器的影响似乎存在混淆 首先 单独的
  • 迭代非增量枚举

    在你问之前 我已经looked https stackoverflow com questions 261963 c iterate through an enum and looked https stackoverflow com qu

随机推荐

  • 如果存在从 S 到 T 的恒等转换,那么 S 和 T 一定是同一类型吗?

    在 6 1 6 中 C 语言规范中有 隐式引用转换为 从任何引用类型到引用类型 T 如果它具有到引用类型 T0 的隐式标识或引用转换 并且 T0 具有到 T 的标识转换 他们为什么不直接说 从任何引用类型到引用类型 T 如果它具有到 T 的
  • 使用 Spring 验证框架验证请求标头

    是否可以将 Spring 验证框架与 Spring MVC 结合使用来验证 HTTP 请求标头的存在和值 要检查presence请求标头的 您不需要验证框架 请求标头参数默认是强制的 如果请求中缺少强制标头 Spring MVC 会自动响应
  • 可以写入 csv 文件但不能追加

    string pathDesktop Environment GetFolderPath Environment SpecialFolder Desktop string filePath pathDesktop mycsvfile csv
  • 如何编写长时间运行的活动来调用 WF 4.0 中的 Web 服务

    我创建了一个执行 Web 请求并将结果存储到数据库中的活动 我发现对于这些长时间运行的活动 我应该编写一些不同的代码 以便工作流引擎线程不会被阻塞 public sealed class WebSaveActivity NativeActi
  • 使用 LIKE 和撇号的 Mysql 查询问题

    所以我有一个有趣的问题 我从未遇到过 并且似乎找不到太多有关纠正该问题的信息 我有一个庞大的数据库 里面有大量的数据 相当于 10 年的数据 并试图对其进行搜索 现在搜索功能运行良好 但最近有人让我注意到一个 错误 如果你愿意的话 我尝试对
  • Android SSL 无对等证书

    我有一个例外 没有同行证书 当我询问谷歌时 我得到了解决方案 我信任所有证书 但这个问题的答案是 它是不安全的 所以我给班级打电话 HostnameVerifier hostnameVerifier org apache http conn
  • Java:获取当前正在执行的Method对应的对象

    将当前正在执行的方法作为 Method 对象获取的最优雅的方法是什么 我的第一个明显的方法是在辅助类中使用静态方法 该方法将加载当前线程堆栈 获取正确的堆栈跟踪元素 并根据其信息构造 Method 元素 有没有更优雅的方法来实现这一目标 这
  • mlflow 如何使用自定义转换器保存 sklearn 管道?

    我正在尝试使用 mlflow 保存 sklearn 机器学习模型 这是一个包含我定义的自定义转换器的管道 并将其加载到另一个项目中 我的自定义转换器继承自 BaseEstimator 和 TransformerMixin 假设我有 2 个项
  • 读取文件并获取 key=value 而不使用 java.util.Properties

    我正在构建一个 RMI 游戏 客户端将加载一个包含一些键和值的文件 这些键和值将用于多个不同的对象 它是一个保存游戏文件 但我不能为此使用 java util Properties 它符合规范 我必须读取整个文件并忽略注释行和与某些类不相关
  • 向量化 for 循环并返回 x 天的最高价和最低价

    Overview 对于数据帧的每一行 我想计算 x 天的最高价和最低价 x 天的高点高于前 x 天 x 天的低点低于前 x 天 for 循环在此有更详细的解释post https stackoverflow com questions 70
  • 具有相同容器端口的多个 docker 容器连接到同一网络

    我有一个依赖于多个 Docker 容器的应用程序 我使用 docker compose 以便所有这些都位于同一网络中以进行容器间通信 但是 我的两个容器正在各自容器内侦听相同的端口 8080 但是映射到主机上的不同端口 8072 8073
  • CALayerframe.size不等于bounds.size

    我在CALayer上遇到了一些奇怪的事情 最后发现CALayer的frame size不等于它的bounds size 这是我无法理解的 我知道frame是在super的坐标系中 bounds是它自己的坐标 并且通常的情况是frame or
  • 在严格模式下,一个对象字面量不能有多个同名属性

    这是我的代码 import combineReducers from redux import postReducers from postReducers import stationsReducer from TrackCircuitS
  • 查找预编译头时使用 #include 跳过 - 查找预编译头时出现意外的文件结尾

    我有一些代码 但无法编译 我无法进一步讨论这个示例 因为每次我尝试调试时都会出现此错误 注意 我是Java程序员 VS中的这条消息很奇怪 我找不到问题所在 有人可以解释一下这个错误是什么意思吗 这是代码 zadatak cpp zadata
  • 为什么编译器不允许在 catch 块内使用await

    假设我有一个异步方法 public async Task Do await Task Delay 1000 另一种方法是尝试调用Do里面的方法catch block public async Task DoMore try catch Ex
  • 使用 xhr-mock 测试 AJAX 函数失败

    我正在尝试从我的中测试以下功能network js export function post data return new Promise function resolve reject need to log to the root v
  • PowerShell Group-Object 不再将对象拆分为固定大小的集合

    我在一个脚本中写了这个 我认为该脚本运行良好 但似乎已停止工作 testList object 1 object 2 object 3 object 4 object 5 counter 0 maxSize 2 groupedList te
  • 添加链接以在 Google 文档中打开本地文件

    我已经制作了有关我的工具的指南 或类似教程的内容 以与我的公司分享 我使用 Google 文档来做到这一点 并且我想添加打开视频指南的链接 我想知道一种在文档中添加链接的方法 我所做的如下 工作表 或您的文档 中的链接仅响应互联网协议 例如
  • 如何使 Flexbox 项目大小相同

    我想使用具有一些宽度相同的项目的 Flexbox 我注意到 Flexbox 均匀地分配空间 而不是空间本身 例如 header display flex item flex grow 1 text align center border 1
  • 数据契约序列化器 - 如何省略集合的外部元素

    如何序列化没有外部元素的列表使用数据契约序列化器 我正在使用 Net 3 5 我有一个类 其中包含一个列表 除其他外 我希望在没有外部元素的情况下序列化该列表 以符合相关的 XSD DataContract Name MyClass pub