草庐IT

c# - Json.NET - CustomCreationConverter 中单个属性的默认反序列化行为

在以下场景中,当CrazyItemConverter遇到我要反序列化到的类型中存在的JSON属性时,如何让它照常运行?我有一些像这样的JSON:{"Item":{"Name":"Apple","Id":null,"Size":5,"Quality":2}}JSON被反序列化为一个看起来很像这样的类:[JsonConverter(typeof(CrazyItemConverter))]publicclassItem{[JsonConverter(typeof(CrazyStringConverter))]publicstringName{get;set;}publicGuid?Id{ge

c# - Json.NET 可以使用 Formatting 序列化流式传输吗?

当使用Json.NET库时,您可以在序列化为字符串时指定格式,但在直接序列化为流时我找不到此选项。我错过了什么吗?两种序列化方式的代码如下:publicstaticstringSerialize(MyObjectobj){JsonSerializerSettingssettings=GetJsonSerializerSettings();returnJsonConvert.SerializeObject(obj,Formatting.Indented,settings);}publicstaticvoidSerializeToStream(MyObjectobj,Streamstrea

c# - 强制 protobuf-net 序列化所有默认值

我有一个使用protobuf-net序列化/反序列化的复杂模型,我们有几个错误与这个不序列化默认值的“功能”。例子:[DataContract]classFoo{publicFoo(){//Valueforcedbyconstructorthis.Value=1;}//Buggy,whenValueissettozero[DataMember(Order=1)]publicdoubleValue{get;set}}当Value=0时,它不会被protobuf-net序列化,但是在反序列化过程中,构造函数强制Value为1(protobuf-net不会改变这个)。为了让它工作,我需要强制

c# - 如何序列化原始 json 字段?

我在数据库中有一个存储json字符串的字段我希望当我在json结果中返回它时,它将作为json原始数据返回,而不是用引号作为字符串扭曲。更新1(更多信息):如果您查看图像字段,它包含一个原始的json字符串值但是在用JsonResult序列化它之后,它会被引号扭曲,因为它是一种字符串,我如何告诉序列化程序将图像字段视为原始json数据?vardb=newModelsContainer();varres=db.Images.OrderByDescending(i=>i.DateCreated).Skip(skip).Take(take).Select(i=>new{id=i.Id,dat

c# - 某些属性未使用 DataContractSerializer 反序列化

我对DataContractSerializer有疑问。我用它从ASP.NETWeb服务返回的XML创建类实例。但实际上数据来源在这里并不重要。为了使整个案例更易于调试,我创建了一个仅包含序列化的简单测试项目,但问题仍然存在。这是我的XML:http://bing.com1143我试图将XML反序列化为的类:[DataContract(Name="GetTestURL",Namespace="http://schemas.microsoft.com/ado/2007/08/dataservices")]publicclassTestInfo{[DataMember(Name="Test

c# - 将对象标记为可序列化会产生开销吗?

如果我将[Serializable]属性添加到类中,这会引入任何开销吗?如果该类从未在任何序列化操作中使用过怎么办? 最佳答案 这不会给对象的正常运行时使用增加任何开销。将类标记为Serializable甚至不会导致元数据的大小差异。它只是在typedef标志中设置了一点。(感谢thecoop指出这一点) 关于c#-将对象标记为可序列化会产生开销吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/q

c# - 字典不支持字典的序列化/反序列化,键必须是字符串或对象

当我尝试在Ajax中反序列化这个字典时,我有这个方法将字典作为JsonResult返回,我收到这个错误:这是我在MVC中的方法:[HttpPost]publicJsonResultGetCalculateAmortizationSchedule(){vardata=.....varhttpClient=newHttpClient();varresponse=httpClient.PostAsJsonAsync("http://localhost:62815/v1/APR/CalculateAmortizationSchedule",data).Result;varreturnValue

c# - 使用 DataContractSerializer 自定义序列化

我目前正在为我的数据集使用包装器类,以实现自定义序列化。我想使用DataContractSerializer(更像是必须使用它)但仍然支持自定义序列化。问题是[DataContract]和[Serializable]属性似乎相处得不太好......我怎么能覆盖序列化,并支持BOTHDataContract和ISerializable序列化?包装器DataSet类的代码被带到这里:[Serializable()][System.Runtime.InteropServices.ComVisible(false)]publicclassTestDatasetWrapper:TestDataS

c# - 每种类型的自定义 Json.NET 序列化程序设置

我正在使用ApiController,它使用全局HttpConfiguration类来指定JsonFormatter设置。我可以很容易地按如下方式全局设置序列化设置:config.Formatters.JsonFormatter.SerializerSettings.PreserveReferencesHandling=PreserveReferencesHandling.Objects;问题是并非所有设置都适用于我项目中的所有类型。我想为执行多态序列化的特定类型指定自定义TypeNameHandling和Binder选项。如何在每个类型或至少在每个ApiController的基础上指

c# - Newtonsoft.Json.JsonSerializationException(从“System.Data.SqlTypes.SqlDouble”上的 'Value' 获取值时出错)序列化 SqlGeography

我尝试在数据库SQLServer2012中使用Newtonsoft.Json版本“Newtonsoft.Json.10.0.3”将DataTable对象序列化为Json。该表有一个类型为“geography”的列,其中包含类型为SqlGeography的实例.用于生成json的代码:publicstringSerializeToJson(){varconnstring1="DataSource=server1;InitialCatalog=database1;user=xxx;password=yyy";varsql="SELECT*FROMtable_1";//table_1hasa