Wcf 在序列化期间展平集合
我正在尝试将“集合集合”转换为外观更好的xml。基本上,我想对服务消费者撒谎,让它看起来像是一个真实的对象 这是WCF自动创建的Wcf 在序列化期间展平集合,wcf,serialization,Wcf,Serialization,我正在尝试将“集合集合”转换为外观更好的xml。基本上,我想对服务消费者撒谎,让它看起来像是一个真实的对象 这是WCF自动创建的 <EntityPropertyCollection xmlns="http://schemas.datacontract.org/2004/07/CustomSerializer" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <EntityProperty> <Name&
<EntityPropertyCollection xmlns="http://schemas.datacontract.org/2004/07/CustomSerializer" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<EntityProperty>
<Name>Test</Name>
<Value i:nil="true"/>
</EntityProperty>
<EntityProperty>
<Name>Test2</Name>
<Value i:type="EntityPropertyCollection">
<EntityProperty>
<Name>Nested1</Name>
<Value i:nil="true"/>
</EntityProperty>
<EntityProperty>
<Name>Nested2</Name>
<Value i:nil="true"/>
</EntityProperty>
</Value>
</EntityProperty>
</EntityPropertyCollection>
测验
测试2
嵌套1
嵌套2
这就是我想要实现的目标
<Something>
<Test i:nil="true"/>
<Test2 i:type="Something">
<Nested1 i:nil="true"/>
<Nested2 i:nil="true"/>
</Test2>
</Something>
为特定类型(EntityPropertyCollection)定制序列化程序会很好,但其他帖子指出这不是一个选项
我查看了数据契约代理。我想我可以生成一个自定义类型,并允许DataContractSerializer序列化生成的类型。但是,我希望有一个更简单的解决方案。您可以在返回对象上实现IXmlSerializable并手动执行序列化,或者只是返回流并使用XmlWriter创建您想要的XML。我尝试过了。正如您所说,它适用于Xml。不过,我找不到REST服务的JSON等价物。不幸的是,DataContractSerializer已被密封。我想我又开始使用代孕了;生成一个类型并让序列化程序像通常那样工作。感谢WCF REST初学者工具包中的帮助检查。其中有一个名为Microsoft.Http和Microsoft.Http.Extensions的库。中有一些Json序列化程序和反序列化程序。您应该能够使用它们生成JSON流。这些类是为在客户端上使用而设计的,但是它们在服务器上也同样适用。谢谢你的建议。我今天没能做这个。当我回来的时候,我会告诉你事情的进展。