草庐IT

c# - UserControl 集合未标记为可序列化

我一定是遗漏了一些非常明显的东西。我是C#的新手,但多年来一直使用C/C++进行编程,如果有明显的问题,我深表歉意;)[请参阅编辑以了解较新的问题]我正在尝试创建一个包含UserControl的节点。我让Control出现在WinForm设计器中,我可以向它添加节点。但是,当我尝试运行代码时,出现以下错误:Codegenerationforproperty'Nodes'failed.Errorwas:'TypeApp.Node'inAssembly'App,version=1.0.0.0,Culture=neutral,PublicKeyToken=null'isnotmarkedas

c# - Newtonsoft JSON - 反序列化JSON时如何使用JsonConverter.ReadJson方法进行类型转换

我需要帮助了解如何使用JsonConverter.ReadJson方法将任意数量的类型(字符串、bool值、日期、整数、数组、对象)的值转换为特定的自定义类型。例如我有以下;publicoverrideobjectReadJson(JsonReaderreader,TypeobjectType,objectexistingValue,JsonSerializerserializer){//wherereader.Valuecouldbeastring,boolean,Date,int,array,object//andinthisexamplethevalueofreader.Valu

c# - XML 序列化和 DefaultValue ("") c# 中的相关问题

我的类属性具有将被序列化的默认值。publicclassDeclaredValue{[XmlElement(ElementName="Amount",DataType="double",IsNullable=false),DefaultValue(999)]publicdoubleAmount{get;set;}[XmlElement(ElementName="Reference2",DataType="string",IsNullable=false),DefaultValue("")]publicstringReference2{get;set;}}因此我们创建DeclaredVa

c# - .NET 中的方法是否也与数据成员一起序列化?

标题很明显,我需要知道在C#中方法是否与对象实例一起序列化,我知道它们在Java中没有,但我对C#有点陌生。如果他们不这样做,在将其发送到另一台PC时,我是否必须将带有字节流(序列化对象)的原始类放在一个包中?原始类可以像DLL文件一样吗? 最佳答案 没有。类型信息与状态一起被序列化。为了反序列化数据,您的程序将需要访问包含类型(包括方法)的程序集。 关于c#-.NET中的方法是否也与数据成员一起序列化?,我们在StackOverflow上找到一个类似的问题:

c# - 为什么二进制序列化比 xml 序列化更快?

为什么二进制序列化被认为比xml序列化更快? 最佳答案 考虑序列化double例如:二进制序列化:从内存地址向流写入8字节二进制反序列化:读取相同的8个字节xml序列化:写入标记、转换为文本、写入结束标记-几乎是I/O的三倍和1000倍的CPU利用率xml反序列化:标签读取/验证、读取字符串并将其解析为数字、结束标签的读取/验证。I/O开销略多,CPU开销多一些 关于c#-为什么二进制序列化比xml序列化更快?,我们在StackOverflow上找到一个类似的问题:

c# - 序列化接口(interface)

我正在尝试运行与此类似的代码:usingSystem;usingSystem.Collections.Generic;usingSystem.IO;usingSystem.Xml.Serialization;namespaceConsoleApplication1{[Serializable][XmlInclude(typeof(List))]publicclassClass1{privateIListmyArray;publicIListMyArray{get{returnmyArray;}set{myArray=value;}}}publicclassClass2{privatei

c# - 为什么 .Net 框架中有那么多简单类型没有标记为可序列化?

我发现.Net框架中的许多简单类型没有标记为可序列化,这是一个反复出现的不便。例如:System.Drawing.Point或Rectangle。这两个结构都只包含原始数据,应该可以很容易地以任何格式序列化。但是,由于缺少[System.Serializable]属性,我无法将它们与BinaryFormatter一起使用。这有什么我没有看到的原因吗? 最佳答案 这只是一个效率问题。将字段标记为可序列化,编译器必须将每个字段映射到别名表。如果它们都被标记为可序列化,则每个注入(inject)或继承它们的对象都需要映射到别名表以处理其序

c# - 反序列化 XML 时出现 FileNotFoundException

我们最近开始看到在反序列化XML时偶尔会抛出FileNotFoundException。消息是找不到用于从XML映射到代码的临时程序集。来自this文档看起来当.NETFramework无法创建此文件时可能会发生这种情况(但是即使在内部异常中也未捕获的原因)。异常(exception)情况:Type:System.IO.FileNotFoundException,mscorlib,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089Message:Couldnotfindfile'C:\DocumentsandS

c# - 使用 Json.net - C# 对象的部分自定义序列化

我要使用Newtonsofts的Json.Net将一些对象和数组序列化为json。这些对象有一组共同的属性,但也有Meta属性,它是一个字典在序列化期间,我希望将键值对添加到我的json对象中,就好像它们位于根级属性中一样,就像这样......{id:1,name:'jeff',food:'spinch',spoon:'ýes'}不是这样的:{id:1,name:'jeff',meta:{food:'spinch',spoon:'ýes'}}我已经深入研究了JsonSerializerSettings,但似乎无法发现我可以跳入并覆盖的位置??? 最佳答案

c# - 为什么我不能使用 XmlSerializer 序列化只读字段?

XmlSerializer不序列化只读字段、只读属性(仅使用getter)、私有(private)字段等。此外,如果类没有无参数构造函数,它也不会序列化对象。我的问题:据我所知,这些问题的出现是因为在反序列化时无法访问(和更改)私有(private)(和只读)字段。但是如果我不反序列化呢?我没有这个选项吗?由于同样的原因(反序列化问题),如果类没有无参数构造函数,它不会序列化对象。但是当我添加一个私有(private)的无参数构造函数时,它工作正常。怎么办?我不喜欢为每个类都添加一个无参数构造函数,并将所有字段设为公共(public)和非只读,只是为了能够对其进行序列化。现在我在私有(