System.Uri 实现 ISerialized,但给出错误? [复制]

2024-03-13

可能的重复:
如何 (xml) 序列化 uri https://stackoverflow.com/questions/1036492/how-to-xml-serialize-a-uri

据我所知Uri实现 ISerialized,但像这样使用时会抛出错误:

XmlSerializer xs = new XmlSerializer(typeof(Server));
xs.Serialize(Console.Out, new Server { Name = "test", URI = new Uri("http://localhost/") });

public class Server
{
    public string Name { get; set; }
    public Uri URI { get; set; }
}

工作得很好,如果Uri类型更改为string.

有谁知道罪魁祸首是什么?


提出的解决方案安东·戈戈列夫:

public class Server
{
    public string Name { get; set; }

    [XmlIgnore()]
    public Uri Uri; 
    
    [XmlElement("URI")]
    public string _URI // Unfortunately this has to be public to be xml serialized.
    { 
        get { return Uri.ToString(); }
        set { Uri = new Uri(value); }
    }
}

(感谢SLaks还指出了我的方法的落后...)

这会产生 XML 输出:

<Server>
    <URI>http://localhost/</URI>
    <Name>test</Name>
</Server>

我在这里重写了它,以便代码可见。


为了序列化为 XML,Uri类应该有一个无参数构造函数,但它没有:Uri被设计为不可变的。老实说,我不明白为什么不能连载的没有无参数构造函数。

为了避免这种情况,要么改变URI属性类型为string,或者再添加一个名为_URI, mark URI with XmlIgnoreAttribute并重写它get方法如get { return new Uri(_URI); }.

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

System.Uri 实现 ISerialized,但给出错误? [复制] 的相关文章

  • 找不到 OAuth2 参数

    我正在尝试使用 OAuth 2 0 来授权 google docs API 根据谷歌给出的例子https developers google com google apps documents list authorizing reques
  • “指定的登录会话不存在。它可能已被终止。”尝试使用 WindowsIdentity.Impersonate 复制文件时

    我正在尝试将文件从共享点复制到 unc 路径 我正在使用以下代码 var id new WindowsIdentity email protected cdn cgi l email protection var p new Windows
  • 使用编译时编织进行依赖注入? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我只是想了解 PostSharp 老实说我认为它太棒了 但有一件事对我来说很难如何纯依赖注入 不是服务定位器 无法完成 https cod
  • 如何以一种形式发布两个或多个模型?

    我正在为一个项目开发互联网课程计划应用程序 该课程计划是根据以下模型构建的 使用数据库优先方法中的实体框架生成 public partial class Subject public int Id get set public string
  • Microsoft Teams 中私人消息的传入 Webhook

    我可以从 C 应用程序或 PS 脚本创建传入 Webhook 将 JSON 消息发送到 MSFT 文档所解释的通道 但是 我想使用传入的 webhook 将 JSON 消息从我的应用程序发送到用户 作为私人消息 就像 Slack 允许的那样
  • 抽象类或接口。哪种方式是正确的?

    有两种方法可以选择抽象类或接口 微软解决方案和Oracle解决方案 微软 设计指南 请使用抽象 在 Visual Basic 中为 MustInherit 类而不是接口来将协定与实现分离 http msdn microsoft com en
  • 有没有办法设置 log4net 内存附加程序可以包含的最大错误消息数?

    我想向根记录器添加一个内存附加程序 以便我可以连接到应用程序并获取最后 10 个事件 我只想保留最后 10 个 我担心这个附加程序会消耗太多内存 该应用程序设计为 24 7 运行 或者还有别的办法吗 您需要创建一个自定义附加程序来存储有限数
  • 是什么原因导致 Linq 错误:此方法无法转换为存储表达式?

    我有一堆具有相同 select 语句的 Linq to Entity 方法 所以我想我会很聪明 并将其分离到它自己的方法中以减少冗余 但是当我尝试运行代码时 我得到了以下内容错误 该方法不能转化为 商店表达式 这是我创建的方法 public
  • 在 .NET 中记录 StackOverflowException

    最近 我的 NET 应用程序 asp net 网站 中出现了堆栈溢出异常 我之所以知道该异常是因为它出现在我的 EventLog 中 我知道 StackOverflow 异常无法被捕获或处理 但是有没有办法在它杀死您的应用程序之前记录它 我
  • 设置 runat=server 时输入名称和 id 发生变化

    在我的表单中 我需要插入 文本 类型的不同输入 输入必须是带有名称和 ID 的 html 控件 因为我将此表单发送到外部网址 对于验证 我在所有输入中执行 runat server 然后我可以使用 requiredfieldvalidato
  • 反序列化嵌套类时不需要 xmlns=''

    我在尝试在服务器上序列化类 将其发送到客户端并在目标上反序列化时遇到问题 在服务器上我有以下两个类 XmlRoot StatusUpdate public class GameStatusUpdate public GameStatusUp
  • 将标签文本的一部分设置为粗体

    有什么办法可以使一部分label text要大胆吗 label text asd string 想要string部分要加粗 有可能吗 这怎么办 下面的类说明了如何通过覆盖来做到这一点OnPaint in the LabelWinForms
  • XMLSerialization:参数对象“Sw”的类型不是原始类型

    我正在尝试将对象序列化为 XML 文件 但收到上述错误 问题似乎出在包含基类列表但由从基类派生的对象填充的对象上 示例代码如下 public class myObject public myObject this list Add new
  • C#:询问用户密码,然后将其存储在 SecureString 中

    在我目前为客户开发的小型应用程序中 我需要询问用户他的 Windows 登录用户名 密码和域 然后使用这些信息系统 诊断 进程 启动启动一个应用程序 我有一个带有 UseSystemPasswordChar 的文本框来屏蔽输入的密码 我需要
  • DataGridView 中的 C# FormatException

    我创建了一个带有一些列的 DataGridView 订单列仅允许用户输入 int 数字 当我输入 j 例如 时 它会抛出 FormatException 并且我尝试添加 try catch 来解决问题 但它看起来不起作用 private v
  • 序列包含多个元素

    我在通过 Linq 获取 RhsTruck 类型的列表并显示它们时遇到一些问题 RhsTruck 只有属性 品牌 型号 序列号 等 RhsCustomer 具有 CustomerName CustomerAddress 等属性 我不断收到错
  • 如何获取可用系统内存的大小?

    C NET 中是否可以获取系统可用内存的大小 如果是的话怎么办 Use Microsoft VisualBasic Devices ComputerInfo TotalPhysicalMemory http msdn microsoft c
  • 获取两个工作日之间的天数差异

    这听起来很简单 但我不明白其中的意义 那么获取两次之间的天数的最简单方法是什么DayOfWeeks当第一个是起点时 如果下一个工作日较早 则应考虑在下周 The DayOfWeek 枚举 http 20 20 5B1 5D 3a 20htt
  • 使用接口有什么好处?

    使用接口有什么用 我听说它用来代替多重继承 并且还可以用它来完成数据隐藏 还有其他优点吗 哪些地方使用了接口 程序员如何识别需要该接口 有什么区别explicit interface implementation and implicit
  • 从 Excel 应用程序对象中查找位数(32 位/64 位)?

    是否可以从 Microsoft Office Interop Excel ApplicationClass 确定 Excel 是以 32 位还是 64 位运行 Edit该解决方案应该适用于 Excel 2010 和 Excel 2007 此

随机推荐

  • 有好的开源 JS 学习项目吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 尝试导入错误:“ReactReduxContext”未从“react-redux”导出

    我正在尝试设置一个新的反应管理控制台 遵循官方教程 https marmelab com react admin Tutorial html https marmelab com react admin Tutorial html 目前re
  • SQL Server:如何从字段中删除标点符号?

    有人知道从 SQL Server 字段中删除标点符号的好方法吗 我在想 UPDATE tblMyTable SET FieldName REPLACE REPLACE REPLACE FieldName 但当我打算删除大量不同的字符时 这似
  • 在 Google 地图 V2 中在多边形上绘制网格

    我已经在 Google 地图 v2 上创建了一个多边形 现在我想在该多边形上添加一个网格 如图所示参考图片并且网格应该重新调整大小并且网格的某些部分应该是可选择的 我对此没有任何想法 所以请帮忙 到目前为止我正在尝试 但仍然没有任何结果 感
  • TF.Keras 中自定义 Scratch 训练中的多输出多类分类

    我想训练一个多输出和多类别从头开始分类模型 使用自定义fit 我想要一些建议 为了提供学习机会 我在这里更详细地演示整个场景 希望它对任何人都有帮助 数据集和目标 我正在使用来自的数据here https www kaggle com c
  • 在 OS X 10.9+ 上安装 libv8 gem

    我正在尝试安装 libv8 3 16 14 3 但在使用最新稳定 rvm 和 ruby 1 9 3 p125 的 OSX Mavericks 上出现错误 这是运行命令 gem install libv8 的输出 src branch mas
  • 在 Java 对象中存储本机指针的“正确”方法是什么?

    在 Java 对象中存储本机指针的 正确 方法是什么 我可以将指针视为 Javaint 如果我碰巧知道本机指针的大小 long如果我碰巧知道本机指针的大小 Edit 从 JNI 函数返回本机指针正是我所要做的don t想做 我宁愿返回一个代
  • 如何在 erlang 中格式化包含整数的平面字符串?

    在erlang中 我想格式化一个包含整数的字符串 并且我希望结果被展平 但我明白了 io lib format sdfsdf B 12312 115 100 102 115 100 102 32 12312 我可以使用下面的代码获得所需的结
  • 有没有办法让 Apache 记录慢速请求?

    如果一个页面需要几秒钟的时间来处理 我希望 Apache 将该 URL 记录在某处 这可能吗 我有很多网站 因此我正在寻找一种自动方法来执行此操作 而不是为每个网站提供专有代码 看一眼http httpd apache org docs 2
  • 编译 JS-Test-Driver 插件并将其安装在 Eclipse 3.5.1 Galileo 上?

    我从以下位置下载了 js test driver 的源代码 http js test driver googlecode com svn tags 1 2 http js test driver googlecode com svn tag
  • 如何将字典中的字符串值转换为 int/float 数据类型?

    我有一个字典列表如下 list a 1 b 2 c 3 d 4 e 5 f 6 如何将列表中每个字典的值转换为 int float 所以就变成了 list a 1 b 2 c 3 d 4 e 5 f 6 我们必须去爱列表推导式 https
  • Attic 和目录中的 CVS 逗号 -v 文件

    我有一个已有多年历史的生产 CVS 存储库 并且注意到它在 Attic 和给定位置的实际目录中都有同名的逗号 v 文件 这似乎是一个错误 我的问题是 这种情况首先是如何发生的 以及当存在重复文件时 CVS 会做什么 我的猜测 希望 是 当存
  • 为什么我收到 F# 错误 FS0039:命名空间或模块“Http”未定义

    在 Visual Studio 2015 和 2017 中 我尝试使用 FSharp Interactive 中的几个 F 示例中的 Http 类 并且不断收到 错误 FS0039 未定义命名空间或模块 Http 这是示例 open FSh
  • AWS ElasticSearchService index_create_block_exception

    在增加集群大小并看到 index create block exception 后 我尝试在 AWS ElasticSearch 集群中创建新索引 我该如何纠正这个问题 我尝试搜索但没有得到确切的答案 谢谢 curl XPUT http
  • 间隔列表中范围不重叠间隔的最大总和

    有人问我这样的问题 您将获得一个间隔列表 您必须设计一种算法来找到不重叠间隔的序列 以使间隔范围的总和最大 例如 如果给定的间隔是 06 00 08 30 09 00 11 00 08 00 09 00 09 00 11 30 10 30
  • C# 快速/高效地压缩大量数据块

    我有大约 270k 个数据块对 每对由一个 32KiB 和一个 16KiB 块组成 当我将它们保存到一个文件时 我当然会得到一个非常大的文件 但数据很容易被压缩 用WinRAR对5 48GiB的文件进行强压缩后 得到的文件大小为37 4Mi
  • 如何在不破坏标签的情况下截断html?

    如何确保所有 html 标签都已关闭 出现问题是因为我想为每篇文章创建某种摘录 例如有人写了这样一篇文章 Hi everyone I m just an article and I have few strong tags strong i
  • MYSQL Docker 容器给出“未知数据库”错误

    我正在使用带有 docker compose 的 MySQL docker 容器 效果很好 唯一的问题是我收到错误unknown database database name 我每天第一次运行它 Windows启动后 之后 如果我停止它并重
  • IIS 5.1 中的 WCF 作为纯文本文件

    我刚刚在我的开发环境中设置了一个简单的 WCF 服务 到目前为止 对于 SOAP 和 JSONP 请求 端点工作正常 我已继续将此解决方案部署到托管在 IIS 5 1 上的临时服务器 我知道 但请耐心等待 并且 svc文件突然不再工作了 并
  • System.Uri 实现 ISerialized,但给出错误? [复制]

    这个问题在这里已经有答案了 可能的重复 如何 xml 序列化 uri https stackoverflow com questions 1036492 how to xml serialize a uri 据我所知Uri实现 ISeria