WCF 自定义 XML 序列化

发布于 2024-10-21 00:50:02 字数 351 浏览 6 评论 0原文

在 WCF 中,如果我有这样的代码并且以 XML 格式返回它,则 XML 是自动生成的。 我是否可以明确指定哪个 XML 将用于 CustomerEntity 的序列化?

[OperationContract]    
[WebInvoke(Method = "GET"]
CustomerEntity GetCustomer(int customerPk);

我当前使用的替代方法是返回 XElement,但这样做的问题是我无法以这种方式支持 JSon。

更新:我的类型是不可变的,并且使用 raedonly 属性,因此 IXmlSerialized 对我不起作用。

In WCF, if I have code like this and I'm returning it in XML format, the XML is auto generated.
Is it possible for me to expicitly specify which XML will be used for the serialization of the CustomerEntity?

[OperationContract]    
[WebInvoke(Method = "GET"]
CustomerEntity GetCustomer(int customerPk);

The alternative that I'm currently using is to return an XElement, but the problem with this is that I can't also support JSon that way.

Update: My types are immutable and use raedonly properties, so IXmlSerializable won't work for me.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

琉璃梦幻 2024-10-28 00:50:02

在 CustomerEntity 上实现 IXmlSerialized。

Implement IXmlSerializable on CustomerEntity.

北斗星光 2024-10-28 00:50:02

您可以尝试使用原始消息,即使用从 Message 类派生的 Contract 类型,并通过重写 OnWriteBodyContents 和其他可重写的 Message 类成员以您想要的方式编写消息。请参考《从Message类继承》
以下 MSDN 文章的 go 部分了解有关 Message 类的可重写成员的更多信息,
http://msdn.microsoft.com/en-us/library/ms734675.aspx

HTH,
阿米特

You can try using Raw messages i.e. using Contract types deriving from Message class and writing the messages the way you want by overriding OnWriteBodyContents and other overridable Message class members. Please refer "Inheriting from the Message Class"
section gof following MSDN article to know more about overridable members of Message class,
http://msdn.microsoft.com/en-us/library/ms734675.aspx

HTH,
Amit

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文