DataContractSerializer
全部标签 如果我使用DataContractSerializer序列化并稍后反序列化一个类,我如何控制未序列化的属性的初始值?考虑下面的Person类。它的数据协定设置为序列化FirstName和LastName属性,但不序列化IsNew属性。我希望IsNew初始化为TRUE,无论是将新Person实例化为新实例还是从文件反序列化。这很容易通过构造函数完成,但据我所知,DataContractSerializer不会调用构造函数,因为它们可能需要参数。[DataContract(Name="Person")]publicclassPerson{[DataMember(Name="FirstNam
如何在使用DataContractSerializer时删除xmlns:i="http://www.w3.org/2001/XMLSchema-instance"。这是我得到的:wolverine@wolverine.comwolverinety1002225wolverine366332214477TY我想得到这样的东西:wolverine@wolverine.comwolverinety1002225wolverine366332214477TY这是我的模型:[DataContract(Namespace="")]publicclassCRMProfileModel{[DataMe
使用DataContractSerializer序列化我的对象我得到类似于的输出some@email.comRandomPersonSomenumber有什么办法让它输出的标签只是等等,而不需要用属性覆盖我的类?如果没有办法保证每次的输出都一样,对吗?因此,如果我使用它来呈现我的对象图是XML以与用于文件生成的X*文档混搭,我将永远不会遇到我的节点更改名称并且文档变成空白的问题,对吗? 最佳答案 发生这种情况是因为您必须使用[Serializable]标记您的类型(例如AgentNotification).当DataContract
当写入流时,DataContractSerializer使用不同于Unicode-16的编码。如果我可以强制它写入/读取Unicode-16,我可以将它存储在SQLCE的binary列中并使用SELECTCONVERT(nchar(1000),columnName)读取它.但事实上,我无法阅读它,除非以编程方式阅读。我可以更改System.Runtime.Serialization.DataContractSerializer使用的编码吗? 最佳答案 DataContractSerializer的WriteObject方法具有写入到
我正在尝试在WCF服务中使用DataContractJsonSerializer将类层次结构序列化为Json字符串。序列化派生类的默认行为是将以下键值对添加到对象:"__type":"ClassName:#Namespace"我的问题是命名空间很长,它们会使Json字符串膨胀。我想以某种方式干预序列化并改为输出:"__type":"ClassName"并在反序列化时再次干预以指向正确的命名空间(我在运行时知道)。有什么办法可以做这样的事情吗? 最佳答案 Thispage描述发出__type属性的情况。简而言之,在WCF中,如果您使用
我的一些类(class)[Serializable][DataContract(Namespace="")]publicclassSomeClass{[DataMember]publicstringFirstName{get;set;}[DataMember]publicstringLastName{get;set;}[DataMember]privateIDictionarycustomValues;publicIDictionaryCustomValues{get{returncustomValues;}set{customValues=value;}}}我的XML文件:JohnS
我有一个大型的第三方网络服务;reference.cs是33MB。使用VisualStudio2017,代理使用XMLSerializer,这会在创建channel时造成5秒的延迟。我在Microsoft开了一个案例,他们部分地向我展示了如何修改reference.cs以使用Datacontract序列化程序。在同一台机器上,channel创建时间为20毫秒,这完全符合我的需求。不幸的是,消息因细微差别而失败,Microsoft支持人员无法提供帮助。有已知的限制吗?我应该寻找任何模式来确定它根本不起作用,我应该开始使用HTTP请求重写所有内容吗?导致整体延迟的实际方法:publicXm
我正在开发一个WCF服务,它将被多个不同的客户端应用程序使用。为了使一个功能正常工作,服务器需要将XML文件读入C#DataContract,然后将其传递给相关的客户端。据我从MSDN网站上了解到,这是可能的,但我找不到任何完整的示例。特别是,该网站谈到了一个我还不太了解的“流”参数。我的数据合约有一个属性字段,它是另一个数据合约的列表,它有多个简单的属性字段。例如[DataContract]publicclassMyClass1{[DataMember]publicstringname;[DataMember]publicintage;}[DataContract]publiccla
我正在使用新的.NET3.0DataContractSerializer。我有要序列化的Nullable>和List>对象。示例:[DataContract(Namespace="")]classTest{publicstaticvoidGo(){Testtest=newTest();vardcs=newDataContractSerializer(typeof(Test));dcs.WriteObject(newStreamWriter("test.xml").BaseStream,test);}[DataMember]publicNullableNullableNumber=nul
有没有办法改变DataContractJsonSerializer序列化日期的方式?目前,它会将日期转换为如下形式:{"date":"/Date(1260597600000-0600)/"}我宁愿将它序列化为自1970年utc以来的毫秒数。这样,其他语言可以轻松处理json数据。 最佳答案 不,序列化程序本身没有钩子(Hook)可以做到这一点。但是您可以使用一些序列化回调来实现相同的行为。您将创建另一个数据成员(字符串类型),并且在数据被序列化之前,将调用[OnSerializing]回调来复制DateTime字段的值到弦一。关