草庐IT

Pickle反序列化

全部标签

c# - 如何让 XmlSerializer 不序列化列表容器标签?

我有一个想要序列化的简单对象图,但我一直无法找到解决此问题的方法。在这里:[XmlRoot]publicpartialclassMyData{privateListitemsField;publicMyData(){this.anyAttrField=newList();this.itemsField=newList();}[XmlElement(Type=typeof(MyDatum))]publicListItems{get{returnthis.itemsField;}set{this.itemsField=value;}}}这会产生以下XML:...我想删除“Items”容器标

c# - 使用 JSON.NET 序列化对象的动态属性名称

我使用JSON.NET序列化我的对象以连接到RESTAPI。我的对象中需要序列化为JSON的属性之一具有动态属性名称。如果此属性的结构中包含的值为数值,则JSON属性为“type_id”,但如果此值为字符串值,则JSON属性名称为“type_code”。我尝试为此使用自定义JsonConverter,但是当我尝试序列化时,我得到了一个带有此消息的JsonWriterException:"TokenPropertyNameinstatePropertywouldresultinaninvalidJSONobject.Path''."下面是我的对象的一个​​子集,如下所示,我没有在我的对象

c# - Xml 序列化 - 渲染空元素

我正在使用XmlSerializer并在类中具有以下属性publicstringData{get;set;}我需要像这样输出我将如何实现这一目标? 最佳答案 我最近在做这个,有一种替代方法,看起来更简单一些。您只需将属性的值初始化为一个空字符串,然后它将根据您的需要创建一个空标签;Data=string.Empty; 关于c#-Xml序列化-渲染空元素,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/

c# - 是否可以使用循环引用执行序列化?

因此,我的实体类(用C#编写)遵循父子模型,其中每个子对象都必须有一个Parent属性,在该属性中它保留对其父对象的引用。由于循环引用,此Parent属性会导致对象序列化出现问题。我无法删除对父级的引用,也无法将其标记为XmlIgnore(因为我需要在反序列化XML时读回它)对此有什么想法吗? 最佳答案 XML序列化不支持循环引用,您需要使用XmlIgnore属性从序列化中排除父属性。参见thisblogpost一种在反序列化时维持关系的方法。或者,您可以使用DataContractSerializer而不是XmlSerialize

c# - 如果找不到元素,我能否在 C# 中使用 XmlSerializer 进行反序列化?

我正在使用XmlSerializer在C#中将对象写入和读取到xml。我目前使用属性XmlElement和XmlIgnore来操作对象的序列化。如果我的xml文件缺少我需要的xml元素,我的对象仍然可以反序列化(xml->对象)。我如何指示(最好通过属性)某个字段是“必需的”?这是我目前使用的示例方法:[XmlElement(ElementName="numberOfWidgets")]publicintNumberThatIsRequired{set...;get...;}我理想的解决方案是添加类似XmlRequired属性的内容。此外,对于哪些属性可用于操纵XmlSerialize

c# - c# 和 newtonsoft 中的 JSON 日期和日期时间序列化

我们将JSON发送到由swagger定义的API,其中一些属性是格式为yyyy-MM-ddThh:mm:ss.000Z的DateTime(毫秒必须是3位数字,否则在端点验证失败)还有一些是日期(无时间)属性。我看到很多消息说使用这样的格式化程序:varjsonSettings=newJsonSerializerSettings();jsonSettings.DateFormatString="yyyy-MM-ddThh:mm:ss.000Z";//try.fffZtoovarjsonObject=Newtonsoft.Json.JsonConvert.DeserializeObject

c# - 序列化对象时如何忽略事件订阅者?

当使用BinaryFormatter序列化以下类时,订阅Roar事件的任何对象也将被序列化,因为对这些对象的引用由EventHandler委托(delegate)持有.[Serializable]publicclassLion{publiceventEventHandlerRoar;publicstringName{get;set;}publicfloatFluffiness{get;set;}publicLion(stringname,floatfluffiness){Name=name;Fluffiness=fluffiness;}publicvoidPoke(){Roar();/

c# - 如何将属性标记为 json 不可序列化?

正如标题所说,我想通过JavascriptSerializer将一个属性标记为不可序列化。怎样才能做到这一点?提前致谢。 最佳答案 我认为您只想应用ScriptIgnoreAttribute:[ScriptIgnore]publicstringIgnoreThis{get;set;} 关于c#-如何将属性标记为json不可序列化?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5

c# - 无法创建组件 .. 类型未标记为可序列化

我正在使用VisualC#2008ExpressEdition创建一个WinForms用户控件。一切都进行得很顺利,直到我发现我可以玩List属性窗口中的集合属性。在尝试更改集合并运行项目后,我开始遇到错误,并尽我所能将一切恢复到正常工作时的状态。现在,当我尝试将控件实例放置到窗体上时,出现以下错误。Failedtocreatecomponent'ColorPicker'.Theerrormessagefollows:'System.Runtime.Serialization.SerializationException:Type'WindowsFormsApplication1.Co

c# - 使用XmlArray反序列化xml文件?

我正在尝试反序列化此xml结构。TestTestTestTest我试过:[Serializable][XmlRoot(ElementName="DietPlan")]publicclassTestSerialization{[XmlArray("Health")][XmlArrayItem("Fruit")]publicstring[]Fruits{get;set;}[XmlArray("Health")][XmlArrayItem("Veggie")]publicstring[]Veggie{get;set;}}但这会引发异常“XML元素已存在于当前范围内。使用XML属性为该元素指定