草庐IT

c# - 实体到 json 错误 - 序列化类型对象时检测到循环引用

尝试将实体对象转换为JSON字符串时出现以下错误。我将C#MVC4与代码优先数据库设计一起使用。它接缝是因为FK和表之间的关系造成了这个问题。解决方法是什么?在序列化System.Data.Entity.DynamicProxies.User类型的对象时检测到循环引用我的代码是Userma=db.user.First(x=>x.u_id==id);returnJson(ma,JsonRequestBehavior.AllowGet); 最佳答案 这是因为它正在尝试加载子对象,并且可能会创建一些永无止境的循环(a=>b,b=>c,c=

c# - Json和Xml序列化,哪个性能更好?

我必须在文件中存储一些配置信息。在C#代码中,配置数据按类表示,在文件中,我将以json或xml格式保存此类。那么,序列化json或xml性能最佳的是什么? 最佳答案 好吧,我有答案,而不是猜测。这是测试程序:classProgram{staticvoidMain(string[]args){stringxmlConfig="";stringjsonConfig="";ConfigmyConfig=newConfig(){value="MyStringValue",DateStamp=DateTime.Today,counter=4

c# - 在 .NET 中反序列化 RSS 提要

使用序列化从RSS提要中读取数据是否可行/可行?我基本上想从我的Netflix队列中提取信息(由RSS提要提供),并且我正在尝试确定序列化是否可行/可能,或者我是否应该只使用类似XMLReader的东西。另外,从URL下载提要的最佳方式是什么?除了驱动器,我从来没有从任何地方提取过文件,所以我不确定该怎么做。 最佳答案 如果您可以使用LINQ,那么LINQtoXML是了解RSS提要文档基础知识的一种简单方法。这是来自somethingIwrote从我博客的RSS提要中选择匿名类型的集合,例如:protectedvoidPage_Lo

c# - 以编程方式设置属性以从序列化中排除

是否可以通过编程方式设置您想要从序列化中排除某个属性?例子:反序列化时,我想加载一个ID字段序列化时,我不想输出ID字段 最佳答案 我相信这里有三个选项:使用XmlIgnore属性。缺点是您需要提前知道您希望xmlserializer忽略哪些属性。实现IXmlSerializable界面。这使您可以完全控制XML的输出,但您需要自己实现读/写方法。实现ICustomTypeDescriptor界面。我相信无论您选择哪种类型的序列化,这都会使您的解决方案正常工作,但它可能是所有解决方案中最长的。

c# - C# 中的序列化和对象版本控制

如果我想序列化一个对象,我必须使用[Serializable]属性,所有成员变量都将写入文件。我不知道如何进行版本控制,例如如果我添加一个新的成员变量(重命名一个变量或只是删除一个变量)然后我打开(反序列化)文件我如何确定对象/文件版本以便我可以正确设置新成员或进行某种迁移?我如何确定变量是否在加载期间被初始化(被解串器忽略)。我知道有版本容错方法,我可以用[OptionalField(VersionAdded=1)]属性标记变量。如果我打开一个旧文件,框架将忽略这个可选的(新变量)并且它只是零/空。但是我又如何确定变量是通过加载初始化还是被忽略了。我可以将类/对象版本号写入流。使用I

c# - 数据契约(Contract)序列化器可以用于任何第三方网络服务吗

我有一个大型的第三方网络服务;reference.cs是33MB。使用VisualStudio2017,代理使用XMLSerializer,这会在创建channel时造成5秒的延迟。我在Microsoft开了一个案例,他们部分地向我展示了如何修改reference.cs以使用Datacontract序列化程序。在同一台机器上,channel创建时间为20毫秒,这完全符合我的需求。不幸的是,消息因细微差别而失败,Microsoft支持人员无法提供帮助。有已知的限制吗?我应该寻找任何模式来确定它根本不起作用,我应该开始使用HTTP请求重写所有内容吗?导致整体延迟的实际方法:publicXm

c# - XmlSerializer 在序列化动态加载的类型时抛出异常

我正在尝试使用System.Xml.Serialization.XmlSerializer来序列化动态加载(和编译的类)。如果我将有问题的类构建到主程序集中,一切都会按预期进行。但是,如果我从动态加载的程序集中编译和加载该类,XmlSerializer会引发异常。我做错了什么?我创建了以下.NET3.5C#应用程序来重现该问题:usingSystem;usingSystem.Collections.Generic;usingSystem.Xml.Serialization;usingSystem.Text;usingSystem.Reflection;usingSystem.CodeD

c# - 通过比较它们的序列化字节数组来比较一个类的两个实例是否可靠?

给定一个类的两个实例,通过先将它们序列化然后比较字节数组(或可能的数组哈希)来比较它们是否是一种良好且可靠的做法。这些对象可能具有复杂的层次结构属性,但序列化应根据需要深入。通过比较,我的意思是确保原始类型的所有属性具有相等值、复杂类型的属性具有原始类型的相等属性等的过程。至于集合属性,它们应该彼此相等:相等的元素,相同的位置:{'a','b','c'}!={'a','c','b'}{newCustomer{Id=2,Name="abc"},newCustomer{Id=3,Name="def"}}!={newCustomer{Id=3,Name="def"},newCustomer{

c# - 在 Protobuf.NET 中序列化 List<object> (其中对象支持原语)?

如何使用protobuf-net序列化这样的对象:publicclassMyObject{publicstringKey{get;set;}publicListValues{get;set;}}当我尝试使用TypeModelprotobuf-net对此进行序列化时,抛出一个错误,指出它不知道如何序列化System.Object。现在我知道Values只会包含基元(int、string、float、DateTime等)。那么如何让protobuf-net知道这一点呢? 最佳答案 在任何意义上,这在纯ProtoBuf中都是不可行的。Pr

c# - 反序列化 JSON 响应时,RestSharp 客户端将所有属性返回为 null

我正在尝试做一个非常简单的示例,即使用RestSharp的Execute方法查询休息端点并序列化为POCO。但是,我尝试的所有操作都会产生一个response.Data对象,该对象的所有属性都具有NULL值。这是JSON响应:{"Result":{"Location":{"BusinessUnit":"BTA","BusinessUnitName":"CASINO","LocationId":"4070","LocationCode":"ZBTA","LocationName":"NameofCasino"}}}这是我的测试代码[TestMethod]publicvoidTestLoc