Tag: 序列化

WCF中IsWrapped属性的用途是什么

WCF中“IsWrapped”属性的用途是什么。 我应该在哪种情况下使用这个属性?为什么?

如何将变量从ASP网站传递到桌面应用程序?

我试图将一个变量从一个asp项目(用c#编写)传递给一个桌面c#应用程序。 我知道使用Javascript你可以使用JavaScriptSerializer ,但有没有相同的asp?

.NET智能卡 – 序列化/反序列化远程对象。 输入流不是有效格式

我使用的是.NET智能卡,它具有与.NET远程处理相同的概念。 所以我的智能卡(作为服务器)有这个服务: public class MyService : MarshalByRefObject { string a = “abC”; public byte[] MySampleMethod() { MyService obj = new MyService(); return help.ObjectToByteArray( obj); }}} 这是ObjectToByteArray(obj) public static byte[] ObjectToByteArray(MyService obj) { if (obj == null) return null; BinaryFormatter bf = new BinaryFormatter(); MemoryStream ms = new MemoryStream(0); bf.Serialize(ms, obj); return ms.ToArray(); } 至于客户: public […]

如果name为大写,则Newtonsoft JsonConvert.SerializeObject忽略JsonProperty

我希望能够使用CamelCasePropertyNameContractResolver但是为特定的属性名称覆盖它。 为此,我使用JsonProperty属性。 这工作正常,除非我选择的名称是完全大写。 任何想法有什么问题或如何解决它? 在下面的示例中,当我不使用CamelCasePropertyNameContractResolver时, Bar被序列化为”BAR” ,但在我使用解析器时序列化为”bar” 。 在两种情况下都可以正确序列化Foo和CamelCaseProperty 。 using Newtonsoft.Json; using Newtonsoft.Json.Serialization; namespace ConsoleTester { class Program { static void Main(string[] args) { var foo = new FooBar {CamelCaseProperty = “test”, Foo = “test”, Bar = “test” }; var output = JsonConvert.SerializeObject(foo); // output “CamelCaseProperty”, “fOO”, “BAR” var output2 = JsonConvert.SerializeObject(foo, new JsonSerializerSettings […]

服务 – 客户端界面,架构建议

我有一个Windows WCF服务和Web客户端。 我的服务有一种方法 [OperationContract] SubmitOrder(OrderInfo info)…. // class used to pass all relevant data [DataContract] class OrderInfo { [DataMember] OrderType Type; // general order data } 在我引入新的订单类型(由OrderInfo.Type属性控制)之前,这很棒。 您可以将新订单类型视为从一般订单(行为方面)派生而来。 每个新订单都有一些额外的属性。 实现Order的这种多态行为的最佳方法是什么? 目前,我只是在添加新订单时向OrderInfo类添加新属性。 [DataContract] class OrderInfo { [DataMember] OrderType Type; // general order data // First custom order data // Second custom order data // TODO – […]

将json动态反序列化为传入的任何对象.c#

我正在尝试将json反序列化为c#中的对象。 我希望能够做的是传递任何对象获取它的类型,并使用JSON.Net库将json反序列化为该特定对象。 以下是代码行。 Object someObject1 = someObject; string result = await content.ReadAsStringAsync(); return JsonConvert.DeserializeObject(result); 最后一行抛出exception operator ‘<' cannot be applied to operands of type 'method group' 如何在没有c#抱怨的情况下获取中的数据类型。 我该怎么做才能使这段代码有效? 我错过了什么知识?

序列化花费了太多时间

这里的序列化需要大约3到8秒的代码取决于对象类型。 我想将此结果存储到Redis中进行缓存。 但这项行动耗时太长。 对于反序列化也是如此。 public byte[] SerializeObject(object objectToSerialize) { try { //If object to serialize is null then return null if (objectToSerialize == null) return null; byte[] result; //Create memory stream and use it for Serializing object using (var ms = new MemoryStream()) { using (var zs = new GZipStream(ms, CompressionMode.Compress, true)) { var bf […]

Lambdas,封闭变量,显示类,可序列化和普遍性层

我已经为Compact Framework实现了普遍性层(包括类似BinaryFormatter的序列化器)。 我希望能够在适当的情况下序列化由lambda和迭代器之类的东西产生的编译器生成的类,以便if(例如)一个lambda及其关闭的变量(即显示类实例)被添加到可序列化对象上的事件中,并且所有已关闭的变量都是可序列化的,然后生成的对象图仍然是完全可序列化的。 如果这些类的实例只能通过它们被序列化的二进制文件的完全相同的构建来反序列化是可接受的 – 流行度层主要是为了在应用程序意外终止时提供持久性(电源故障和设备重启是不同的可能性) ,并且序列化的数据流不应该是向前或向后兼容的,或者甚至是相同的源代码的两个编译兼容 – 当我们下次与它进行对话时,所有后果将被发送到服务器,我们不会在断开连接时更新。 在这个有限的上下文中,格式化程序将这些编译器生成的类视为可序列化是否合理? 我看到的唯一选择是手工实现其他所有可编译器支持的模式,其中可串行化是一个问题,其后果从过于冗长到几乎不可读。

以二进制,打包格式序列化结构

在C#中是否有一种方法可以将结构序列化为二进制流(MemoryStream),这样二进制表示等同于结构在视觉上的布局方式(即没有填充)? 在C / C ++中,您使用#pragma命令告诉编译器打包结构,以便字段之间没有填充。 如果您有两个应用程序通过套接字来回传递消息,这将非常有用。 禁用打包后,您可以简单地通过套接字“发送”结构的内容,而不必担心将每个字段单独打包到二进制缓冲区中(如果需要,还必须进行字节顺序交换)。

c#序列化JSON日期为ruby

我有一个C#应用程序,它将其DTO序列化为JSON,并将它们发送给由Ruby处理的线路。 现在序列化日期的格式如下: /Date(1250170550493+0100)/ 当这击中Ruby应用程序时,我需要将此字符串表示forms转换回日期/日期时间/时间(无论它在Ruby中)。 有什么想法我会怎么做? 干杯,克里斯。