草庐IT

序列号

全部标签

c# - 您如何知道何时通过 XML 序列化加载?

我正在尝试通过XML序列化加载对象树,此时它将加载对象,并非常愉快地创建树。我的问题围绕着这些类支持一定程度的审计这一事实。我希望能够在每个对象完成加载后调用一些方法。为了论证,假设我有一个相当通用的对象树,在不同级别有不同的类,例如:123AnyStreet456HighStreet有没有什么方法可以使用默认的序列化程序(类似于您可以创建类似ShouldSerializeFoo的方法)来确定每个对象的加载何时完成?编辑:我应该指出,暴露类似于OnLoaded()方法的明显情况,我可以在反序列化后调用,这让我觉得是一件“坏事”.编辑2:为了便于讨论,这是我当前的hack“方法”,适用于

c# - 在 C# 中,如何将旧对象中的 XML 反序列化为更新后的对象并忽略丢失的 xml 元素?

我有一个自定义设置文件,我使用XmlSerializer对其进行序列化/反序列化。我的对象定义中没有定义模式和序列化标签,只是直接对象序列化(尽管我会在需要时添加它们)。我的问题是我需要向对象添加数据成员。如果我这样做,我知道旧的设置文件将不会反序列化。有没有一种方法可以为添加的成员指定默认值,或者如果XML中缺少它们,可以通过一些简单的方法忽略它们? 最佳答案 来自MSDNBestPracticesToensureproperversioningbehavior,followtheseruleswhenmodifyingatype

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# - Linq OrderBy().ThenBy() 方法序列的时间复杂度是多少?

我在我的项目中使用Linq和Lambda操作,我需要根据类的两个属性对列表进行排序。因此,我使用了OrderBy().ThenBy()方法如下:classValueWithIndex{publiclongValue;publicintIndex;}...ListvaluesWithIndex=newList();for(inti=0;iv.Value).ThenBy(v=>v.Index);...在This回答中解释说,OrderBy()使用Quicksort,所以即使它有O(N*logN)的平均时间复杂度,最坏的情况下,时间复杂度也在O(N2)左右。如果ThenBy()方法的最差时间

c# - 在 .NET 2.0 中序列化为 JSON

如何使用C#在.NET2.0中将对象序列化为JSON? 最佳答案 您可以使用JavaScriptSerializer来自ASP.NETAjax1.0的类,它与.NET2.0兼容。 关于c#-在.NET2.0中序列化为JSON,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1056169/

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# 和 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();/