草庐IT

C# XML 序列化向后兼容性

以前,序列化/反序列化方法使用类型Item:publicclassItem{}现在我有一个名为ItemWrapper的新类,它派生自Item并具有一个附加属性:publicclassItemWrapper:Item{publicstringNewProperty{get;set;}}现在我的序列化/反序列化方法使用ItemWrapper类型。现在我打破了向后兼容性。我无法加载在旧版本中保存的任何Item类型的XML文件。当它尝试将Item反序列化为ItemWrapper时,我考虑过在反序列化方法上放置一个try/catch,然后在catch中我将尝试反序列化为项目。或者我可以使用xPa

c# - 有关如何使用 JSON.NET 创建自定义 GeoJson 序列化程序的建议?

我将尝试创建一个C#库来将对象序列化为GeoJSON使用Json.NET(用于序列化)和GeoAPI.NET(用于几何定义)。我考虑过两种不同的序列化实现方法,但我不清楚哪一种是最好的方法。它们是:方法1-自定义属性第一种方法涉及创建多个可应用于任何类以修改序列化的自定义属性。例如,一个类可能被装饰成这样:[GeoJsonFeature]publicclassBuilding{[GeoJsonId]publicGuidId{get;set;}[GeoJsonProperty]publicstringName{get;set;}[GeoJsonProperty]publicintFloo

c# - 从 ModelState 中删除 JSON.net 序列化异常

问题背景为了避免重复验证逻辑,我遵循一种将服务器端ModelState错误推送到我的View模型(MVVMKnockoutJS)的模式。所以按照惯例,我的KOViewModel上的属性名称与我的Api公开和期望的属性相匹配,因此我可以使用我编写的一个小Knockout插件轻松地将一个映射到另一个。...Spend$问题我的问题是,当JSON.Net序列化我通过AJAX发送的JSON时,当它遇到异常时,它会将其添加到ModelStateas和ExceptiononModelError类。示例响应:{"message":"Therequestisinvalid.","modelState"

c# - 有什么方法可以对 List<T> 的子类进行 JSON.NET 序列化,该子类也具有额外的属性?

好的,我们正在使用我非常喜欢的Newtonsoft的JSON.NET产品。但是,我有一个简单的类结构,用于分层位置,大致如下所示......publicclassLocation{publicstringName{get;set;}publicLocationListLocations{get;set;}}//Note:LocationListissimplyasubclassofaList//whichthenaddsanIsExpandedpropertyforusebytheUI.publicclassLocationList:List{publicboolIsExpanded{

c# - 枚举不序列化

我有一个WCF服务。它绑定(bind)到MSMQ,但这不是这里的问题。我可以序列化一个对象,该对象具有基类和在基类中实现的接口(interface),具体类派生自基类-这工作正常。然而,当我在基类中有一个枚举并设置该值时,在它被反序列化/从MSMQ读取之后,该值仍设置为默认值(即不是在代码中手动设置的值)有什么想法吗?我什至将枚举标记为DataContract,并将每个Enum成员标记为EnumMember属性。如何序列化枚举? 最佳答案 试试这个。[Serializable]publicenumEnumToSerialize{[X

c# - 如何使用 DataContractSerializer 反序列化文件中的 WCF soap 响应消息?

当我调用Web服务操作时,WCF使用DataContractSerializer将消息反序列化到代理类:为什么我不能这样做?这是文件ActLoginResponse.xml中的soap消息:0Loginetpasswordcorrect.IMT_706IMAPROTECT0TS30相应的ActLoginResponse类的WCF代理代码是:[System.Diagnostics.DebuggerStepThroughAttribute()][System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel","4.0

c# - 使用 JsonConverter 的 Json.NET 自定义序列化 - 如何获得 "default"行为

我的类DataType有一个JsonConverter。当在Json中使用纯字符串作为DataType类型的属性值时,我想做一些特殊处理。在值是“完整”对象的情况下,我想进行“正常”反序列化。这是我的尝试publicoverrideobjectReadJson(JsonReaderreader,TypeobjectType,objectexistingValue,JsonSerializerserializer){if(reader.Value!=null&&reader.ValueType==typeof(string)){returnsomeSpecialDataTypeInsta

c# - 更改单个 ASP.NET Core Controller 的 JSON 序列化设置

我有两个ControllerController:ControllerA和ControllerB。每个Controller的基类是Controller。ControllerA需要以默认格式(camelCase)返回JSON。ControllerB需要以不同的JSON格式返回数据:snake_case。如何在ASP.NETCore3.x和2.1中实现它?我尝试了startup:services.AddMvc().AddJsonOptions(options=>{options.SerializerSettings.Converters.Add(newStringEnumConverter

c# - 序列化没有根元素的数组

我试图在序列化XML时得到这个结果C:\test.txt1245我已经尝试过不同的事情了[Serializable][XmlRoot("Test")]publicclassTest{[XmlElement("Category")]publicListCategory=newList();}[Serializable][XmlRoot("Category")]publicclassCategory{[XmlElement("FileName")]publicstringFileName{get;set;}[XmlElement("Property")]publicListProperti

c# - 使用 XmlSerializer 序列化 char 数据类型

我有一个类,其属性类型为char,如下所示[XmlRoot("Root")]publicclassTestClass{[XmlElement("Test",typeof(char))]publiccharTestProperty{get;set;}}当TestProperty的值为“N”时,如果我序列化TestClass,它将产生以下结果:78但我想要的是有跟随N是否可以不将TestProperty的类型更改为字符串? 最佳答案 不是AFAIK。不过你可以作弊:[XmlIgnore]publiccharTestProperty{ge