当前位置: 首页 > 面试题库 >

在WCF JSON服务中禁用类型提示

滕夜洛
2023-03-14
问题内容

我有一个相对简单的问题,我似乎找不到答案。

当WCF执行对象的序列化时,它会自动应用类型提示。对于Json服务,这会在每个称为的复杂对象上产生一个额外的字段__type。对象定义为:

[DataContract]
public class SomeObject
{
    [DataMember]
    public string First { get; set; }

    [DataMember]
    public string Last { get; set; }
}

将序列化为:

{
    "First" : "Hello",
    "Last" : "World!",
    "__type" : "SomeObject#MyNamespace.SomeObject"
}

通常这不是问题。不幸的是,当您开始将类嵌套到相当大和复杂的结构中时,这将导致大量返回给客户端的JSON响应的开销。

当然,必须有一种方法来禁用此行为,但是我一直找不到(Rick Strahl早在2007年都没有……但是到了2010年,我希望有人能弄清楚这一点)。


问题答案:

使用DataContractJsonSerializer会想做到这一点以支持多态性并能够反序列化回已知类型。NewtonSoft是第三方json序列化程序,不会添加__type提示。如果您只是序列化而不使用真正的高级DataContract属性,则可以尝试一下。



 类似资料:
  • 问题内容: 我必须将数据上传到服务器。我正在使用与我的应用程序运行在同一进程上的服务。我应该使用单独的线程进行上传过程还是应该使用AsyncTask将数据上传到服务器? 更具体地说,我可以在服务类中使用AsyncTask吗?我应该使用它吗?此服务应始终在内存中运行,以便每5秒将数据发送到服务器。 问题答案: 是的,您可以,下面的代码每5秒运行一次。使用常规的连接代码发送零件。

  • 问题内容: class Node: def append_child(self, node: Node): if node != None: self.first_child = node self.child_nodes += [node] 我该怎么办?因为当我运行它时,它说。 我应该只删除and实例在函数中检查它吗?但是,我该如何访问的属性(我希望它是类的实例)? 我不知道如何在Python,

  • 问题内容: 我有一个在独立模式下运行的Flask服务器(使用)。但是,我不需要控制台中的任何消息,例如 如何禁用详细模式? 问题答案: 你可以将Werkzeug记录器的设置级别设置为ERROR,在这种情况下,仅记录错误:

  • 问题内容: 我想在当前的Python 3.5项目中使用类型提示。我的函数应该接收一个函数作为参数。 如何在类型提示中指定类型函数? 我检查了PEP 483,但在那里找不到函数类型提示。 问题答案: 正如@jonrsharpe在评论中指出的,可以使用以下方法完成: 问题是,将其本身翻译为: 一个Callable接受 任意数量的/类型的 参数,并返回任何类型的值。在大多数情况下,这不是您想要的,因为您

  • 问题内容: 我注意到python 3.5和python 3.6添加了许多有关静态类型检查的功能,因此我尝试使用以下代码(在python 3.6中为稳定版本)。 令我惊讶的是,尽管python附加到仅包含字符串的,但它却没有给我错误或警告。检测到类型错误并向我发出警告,但是它不明显,并且未在输出控制台中显示,我担心有时可能会错过它。我想要以下效果: 如果很明显如上所述我使用了错误的类型,请抛出警告或

  • 我读了一些文章,看了一些视频,但在为这些微服务提供服务方面,没有找到具体的建议。我的理解是,他们应该使用自己的应用程序服务器。 我的问题是它们应该部署在不同的服务器上,还是没关系。 当它们在同一台服务器(计算机)上提供服务时,不会有端口冲突吗?