C#XML&;类的JSON序列化以不同的格式包含/排除属性

C#XML&;类的JSON序列化以不同的格式包含/排除属性,c#,.net,C#,.net,我正在尝试将一个类序列化为XML和JSON 这相当简单,但是我需要从JSON的输出中排除XML输出中包含的一些属性 例如: [DataContract] public class Foobar { [DataMember] [XmlElement("somestr")] public string SomeString [XmlElement("otherstr")] public string OtherString } [数据合同] 公共级Foob

我正在尝试将一个类序列化为XML和JSON

这相当简单,但是我需要从JSON的输出中排除XML输出中包含的一些属性

例如:

[DataContract] public class Foobar { [DataMember] [XmlElement("somestr")] public string SomeString [XmlElement("otherstr")] public string OtherString } [数据合同] 公共级Foobar { [数据成员] [XmlElement(“somestr”)] 公共字符串SomeString [xmlement(“otherstr”)] 公共字符串OtherString } 现在,通常情况下,当不使用[XmlElement(“tag_name”)]时,在属性上省略[DataContract]就足以在序列化为JSON时将其排除在“OtherString”之外

我的测试似乎显示[XmlElement]指令正在告诉JSON序列化程序包含它们

有人对我如何控制输出有什么建议吗,这样JSON和XML就不一样了


非常感谢。

您可以尝试将
[IgnoreDataMember]
添加到
其他字符串中。不过,您可能会发现只需将DTO划分为2个类就更容易了—1个用于json,一个用于DC。如果您使用
JavaScriptSerializer
,那么twinned
JavaScriptConverter
非常容易编写,因此这是另一个可行的选择(您甚至可以只使用
[ScriptIgnore]
)而不受影响。

您可以尝试将
[IgnoreDataMember]
添加到
其他字符串中。不过,您可能会发现只需将DTO划分为2个类就更容易了—1个用于json,一个用于DC。如果您使用
JavaScriptSerializer
,twinned
JavaScriptConverter
非常容易编写,因此这是另一个可行的选择(您甚至可以只使用
[ScriptIgnore]
)。

嘿,Marc-使用[IgnoreDataMemeber]工作得很好。非常感谢。嘿,马克-使用[IgnoreDataMemeber]非常有效。非常感谢。