草庐IT

SERIALIZATION

全部标签

c# - 使用 DataContractJsonSerializer 将 JSON 反序列化为字典

这个问题在这里已经有了答案:DeserializingaJSONobjecthierarchyintoahierarchyofDictionary(2个答案)关闭4年前。我在响应中收到以下JSON结果:{"result":{"":-41.41,"ABC":0.07,"XYZ":0.00,"Test":0.00}}我已经为反序列化准备了以下类:[DataContract]publicsealedclassRpcResponse{[DataMember(Name="result")]publicList>Result{get;set;}}然而,当我试图用DataContractJsonSe

c# - 使用 XmlSerializer 反序列化随机/未知类型

这个问题在这里已经有了答案:DeserializeXMLToObjectusingDynamic(1个回答)关闭7年前。我正在使用XmlSerializer与服务通信。这不是常规的SOAP服务,它有自己的XML对象类型。例如,我可能会要求对象,但它可能返回.因此,换句话说,我必须处理随机的XML文档类型。但是,我知道我必须处理哪些类型。我正在尝试做的是找到一种通用方法来序列化/反序列化这些文档。问题是XmlSerializer需要在创建阶段知道类型。这些没有封装在公共(public)根元素中,因此创建一个基类并使用[XmlInclude]属性在这种情况下不起作用:[XmlInclude

c# - 如何在 C# 中使用 XmlSerializer 将字节数组序列化为 XML?

假设我们有一个结构,它的数据由使用Marshal.PtrToStructure的非托管字节数组提供。C#结构布局:[StructLayout(LayoutKind.Sequential,Size=128,CharSet=CharSet.Ansi,Pack=1)]publicstructMNG_Y_Params{publicbyteNumber;publicbyteVersion;[MarshalAs(UnmanagedType.ByValArray,SizeConst=16)]publicbyte[]OliNumber;publicbyteInterfaceType;}字节数组表示非托

c# - 在枚举参数中使用短划线 (-) 字符

publicenumTimeFormat{@12-hour,@24-hour}你好,我使用newtonsoft反序列化器将json字符串反序列化为对象。JsonDeserializer检查枚举参数名称。如果它与json字符串相同。它将字符串转换为枚举。我可以在枚举中使用破折号、减号(-)字符作为枚举参数吗?我试着像上面那样使用,但我无法编译项目。然后我尝试了这个。[JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))]publicenumTimeFormat{[JsonProperty("12-hou

c# - 是否有用于 .net 的序列化程序将输出 c# 代码?

我正在寻找一个序列化程序,它可以接受一个实例,并将其序列化为一个包含c#代码的字符串,代表图形的内容。该类的功能类似于JSON.NET中的SerializeObject。我知道只有一小部分结构可以工作,但我感兴趣的结构非常简单而且它们会起作用。如果有人知Prop有类似功能的VisualStudioVisualizer,可加分。编辑:输出将在编译时用于不同的应用程序。我不需要在运行时反序列化输出(c#代码),它会保存到文件中以供分析。varfoo=newFoo(){Number=1,Bar=newBar(){Str="Bar"}};stringsourceCode=Magic.Seria

c# - 序列化和反序列化时出现 InvalidCastException

我有这个代码:publicbyte[]SerializeToBlob(){using(varbuffer=newMemoryStream()){varformatter=newBinaryFormatter();formatter.Serialize(buffer,this);buffer.Position=0;returnbuffer.ToArray();}}publicstaticActionDataDeserializeFromBlob(byte[]state){using(varbuffer=newMemoryStream(state)){varformatter=newBin

c# - 尝试打开 telerik 报告时出现 "Value cannot be null. Parameter name: instance"错误

在我的解决方案中,我有telerik报告,当尝试在VisualStudio2010设计器中打开它们时,我收到此错误:Valuecannotbenull.Parametername:instanceCallStackatSystem.ComponentModel.TypeDescriptor.AddAttributes(Objectinstance,Attribute[]attributes)atMicrosoft.VisualStudio.Design.VSDesignSurface.CreateDesigner(IComponentcomponent,BooleanrootDesig

c# - StringContent 与 ObjectContent

我正在使用System.Net.Http的HttpClient通过“POST”调用RESTAPI使用以下代码:using(HttpRequestMessagerequestMessage=newHttpRequestMessage(HttpMethod.Post,newUri(request)){}){response=awaithttpClient.PostAsync(request,objectContent);}“objectContent”目前是这个-objectContent=newObjectContent(jsonContent.GetType(),jsonContent

c# - 如何使只读结构 XML 可序列化?

我有一个只有一个字段的不可变结构:structMyStruct{privatereadonlydoublenumber;publicMyStruct(doublenumber)=>this.number=number;}我希望它能够通过以下方式序列化/反序列化:数据契约序列化器二进制格式化程序XML序列化程序(编辑:在原始问题中忘记了)Json.NET(不添加Json.NET作为依赖项)所以结构变成了这样:[Serializable]structMyStruct:ISerializable,IXmlSerializable{privatereadonlydoublenumber;pub

c# - 具有 Stream 类型成员的对象的 JSON.NET 序列化?

希望这是一个我忽略的简单修复。我有一个对象传递到事件处理程序中,我想使用JSON.NET序列化该对象,如下所示:publicvoidOnEvent(IEventObjectfoo){//Serializefootostring/diskhere?vardata=JsonConvert.SerializeObject(foo,Formatting.Indented);}foo的一个或多个成员似乎是流。我已经认识到Streams不可序列化,因为它们是对数据而非数据本身的抽象。这是有道理的。我不知道如何序列化这个对象:a)将流转换成数据并序列化b)忽略流并序列化其余成员一个重要的警告是我无权