【问题标题】:What does WCF custom class / object get extra "Field" method?WCF 自定义类/对象有什么额外的“字段”方法?
【发布时间】:2013-07-13 10:02:52
【问题描述】:

在调试中“观察”我的对象时,我注意到项目类(t 列表)在 itemsField 类/属性中重复?真的不确定。在调试中我可以看到这一点,但使用智能感知,它无法在代码中访问。

询问的原因...我正在通过 WCF 发送大量数据,并希望“削减”任何不需要的开销。我的项目列表中有 185 个自定义对象,这似乎在添加到对象的 itemsField 列表中重复。

这只是在反序列化后构建的内部 .net 必需品以使用这些类,还是这个额外的列表与我的实际列表一起通过 wcf 传输?如果是这样,我可以选择放弃吗?好像是一模一样的……

问候

【问题讨论】:

    标签: .net vb.net wcf serialization


    【解决方案1】:

    如果我没记错的话,额外字段是指extension object

    此属性用于两个基本目的 -

    1. 如果服务中有合同变更,附加 属性被返回到这个对象中。
    2. 如果在向 WCF 服务发送数据时出现某些错误, 请求返回到扩展对象。

    编辑:

    【讨论】:

    • 谢谢。但我不是在谈论扩展对象。我原以为这可能就是您在上面所指的。我所拥有的是一个与我的列表对象同名的对象(我在对象中只有一个顶级列表),并附加了“字段”字样。
    • 我在 OP 中添加了一张图片。
    • @LouisvanTonder 嘿!这里没有什么可担心的:-),您在调试器窗口中看到的名为itemField 的附加项只是backing fielditem 属性。
    • @LouisvanTonder 您应该能够在调试器窗口中看到每个属性的支持文件。
    • 支持字段不包含重复数据,而是属性持有对同一内存位置的引用。
    【解决方案2】:

    您可以使用FiddlerSoapUI(或其他十几个工具)等工具来检查实际发送的内容。

    编辑: 我不知道 VB,但对我来说,在查看图片之后,您似乎拥有(可能是自动实现的)属性,并且您可以看到您的支持字段。它们不是具有 185 个条目的两个不同实体,而是指向同一个列表的两个变量。

    【讨论】:

    • 我实际上是通过 WCF 序列化为 xml、压缩和传输内存流。检查我的序列化 xml 文档,额外的“字段”列表不在那里,所以很确定它不会通过电线传输......仍然好奇它是什么,因为它以两倍大小的重量压下我的对象(以字节/数据为单位)。
    • 我在 OP 中添加了一张图片。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-18
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    相关资源
    最近更新 更多