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,但给出错误? [复制] 的相关文章

  • 如何在 SignalR 客户端中将 async/await 与 hub.On 一起使用

    我有一个与 SignalR Hub 服务器 通信的 Net Windows 服务 客户端 大多数客户端方法都需要时间才能完成 当收到来自服务器的调用时 我如何 或需要 包装目标方法 hub On以避免警告 由于不等待此调用 因此在调用完成之
  • 递归分层父子

    我有一个来自数据库的项目集合 该数据库具有parentid值或空 这是我的班级设计 public class Item public int id get set public string Name get set public int
  • 给 MVVM 中的 View 一些命令

    假设我有一些用户控制权 用户控件有一些子窗口 用户控制用户想要关闭某种类型的子窗口 用户控制代码后面有一个方法 public void CloseChildWindows ChildWindowType type 但我无法调用此方法 因为我
  • 检查输出是否重定向

    我有一个用 C 编写的控制台应用程序 它处理一些数据然后打印结果 在结果可用之前 会有一个小动画 和不断更新的进度百分比 xx 显然 如果用户重定向我的应用程序的输出 这将被打印到输出重定向到的文本文件中 如果可能的话我想避免这种情况 那么
  • 快速变化的集合 MVVM WPF - 高 CPU 使用率和 UI 几乎冻结

    我正在开发一个带有数据网格的应用程序 它显示某些正在运行的 Windows 进程 在我的示例 Chrome 进程中 当选中复选框时 数据网格会加载进程 要求 显示每个进程的名称 内存使用情况 私有工作集 的 实时 信息 就像在 Window
  • 如何重置 MS Access 中的身份列

    我有一个 Windows 应用程序连接到MS Access 2007数据库 已有300多条记录Customer Table 我已经删除了所有记录 但插入新记录后CustomerID回报301 但我想将其设置为1 我尝试了以下查询 ALter
  • 部署.Net应用程序

    我在部署 net windows 应用程序时确实有某些疑问 部署机器是否需要安装 Net框架 如果不是这样 我的应用程序安装程序 exe 是否包含编译器或类库与设置集成 另外 我可以将我的 net 应用程序部署在除windows 是否支持s
  • app.UseHsts() 和 app.UseExceptionHandler() 有什么区别?

    在 NET Core 应用程序的 Startup cs 文件中 默认情况下它使用 public void Configure IApplicationBuilder app IHostingEnvironment env if env Is
  • 使用 ServiceStack JsonSerializer 反序列化包含 Dictionary 属性的类型

    下面的代码片段显示了我可以实现此目的的两种方法 第一个是使用MsgPack https github com msgpack msgpack cli第二个测试是使用ServiceStack 的 JSONSerializer https gi
  • COM Interop 挂起会冻结整个 COM 系统。如何取消COM调用

    我正在使用通过 COM Interop 包装器公开的第三方 dll 然而 其中一个 COM 调用经常冻结 至少不会返回 为了至少让我的代码更加健壮 我异步包装了调用 getDeviceInfoWaiter is a ManualResetE
  • Interlocked.CompareExchange 可以抛出 NullReferenceException 吗?

    From https msdn microsoft com en us library bb297966 v vs 110 aspx https msdn microsoft com en us library bb297966 v vs
  • 如何在 C# 中从字符串调用委托?

    是否可以通过变量名称 作为字符串 调用存储在变量中的委托 我想我必须使用反射机制 但我没有得到任何结果 示例代码 class Demo public delegate int DemoDelegate private static int
  • 在网络共享或 Intranet 项目上编译网站时请求“System.Web.AspNetHostingPermission”类型的权限失败

    我已经使用 Windows 7 一段时间了 但自从升级以来 我还没有必要使用特定的旧版 Intranet 应用程序 不幸的是 该应用程序被设置为托管在 Intranet 服务器上的 ASP NET 网站项目 当我在 Visual Studi
  • 为什么 localInit Func 在 Parallel.ForEach 中每个线程被调用多次

    我正在编写一些代码来处理大量数据 我认为让 Parallel ForEach 为它创建的每个线程创建一个文件会很有用 这样输出就不需要同步 至少对我而言 它看起来像这样 Parallel ForEach vals new ParallelO
  • 托管线程多久切换一次操作系统线程?

    据我所知 托管线程不能保证在同一操作系统线程上运行 如果 CLR 可以在操作系统线程之间切换托管线程 这种情况发生的频率是多少 频率受什么影响 我有一个单独的问题 https stackoverflow com questions 1979
  • 用于存储和检索每个用户敏感数据的.Net 设计模式

    Net 服务器应用程序是否有与存储和检索敏感的每个用户信息 例如第 3 方凭据 相关的参考模式 我的初步设计思路是 生成具有适当强私钥的自签名 X509 证书 导出证书和密钥并将其存储在 USB 密钥中 该 USB 密钥将被锁在宝箱中并由龙
  • 如何将隐藏字段从一个页面传递到另一页面?

    我有一个 Net 类库 我想从一次代码隐藏页面传递一个隐藏变量 并在另一个代码隐藏页面中获取它 请注意 我没有任何可以使用表单标签和 get post 方法的设计页面 aspx 页面 我们应该怎么做 注意 我想使用隐藏字段将值从一页传递到另
  • 读取文件特定行号的有效方法。 (奖励:Python 手册印刷错误)

    我有一个 100 GB 的文本文件 它是来自数据库的 BCP 转储 当我尝试导入它时BULK INSERT 我在第 219506324 行上收到一个神秘错误 在解决此问题之前 我想看看这一行 但可惜的是我最喜欢的方法 import line
  • Visual Studio 中的测试单独成功,但一组失败

    当我在 Visual Studio 中单独运行测试时 它们都顺利通过 然而 当我同时运行所有这些时 有些通过 有些失败 我尝试在每个测试方法之间暂停 1 秒 但没有成功 有任何想法吗 在此先感谢您的帮助 你们可能有一些共享数据 检查正在使用
  • 将自定义 ValueProviderFactories 添加到 ASP.NET MVC3?

    我试图尝试将 Protobuf ValueProviderFactory 添加到 MVC3 以便我可以选择 MIME 类型并将原始数据反序列化为操作参数的对象 我还可以使用它来更改默认的 Json 序列化器 看着JsonValueProvi

随机推荐

  • 有好的开源 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