当前位置: 首页 > 知识库问答 >
问题:

在WCF中需要Dataconact属性?

蒯卓君
2023-03-14

是否在WCF DataContract属性中是必需的?

我有一个类,该类没有用DataContract或带有DataMember的属性标记。

当我在4台服务器上部署wcf服务时,out 4服务在3台服务器上运行正常,在1台服务器上失败,消息为“类型'类'无法序列化”。请考虑使用DataCoutAtinn属性标记它,并使用DataMemberAtinn属性标记所有想要序列化的成员。"

所以,在网络中有任何设置。配置或机器。配置或在IIS中,我可以授权在代码中使用序列化程序?或

如果没有指定属性,我可以指定使用默认序列化程序吗?

谢谢克里希纳

共有3个答案

葛航
2023-03-14

是的,在WCF服务和任何客户端之间发送的所有类上都需要[DataContract]属性。

该类的所有可能包含要发送的数据的属性都需要用[Data成员]属性标记。这使得定义一个包含可序列化和非序列化数据的类成为可能——但我不推荐这样做。

请注意,您只能序列化数据成员,例如public字段或属性,但不能序列化方法。因此,我的建议是使用普通类,这些类除了包含要作为数据契约在服务和客户机之间进行通信的数据之外,不做任何其他事情。

杜阳炎
2023-03-14

如MSDN所述

指定类型定义或实现数据契约,并且可由序列化程序(例如Data合同序列化程序)序列化。要使其类型可序列化,类型作者必须为其类型定义数据契约

您必须使用DataContractDataMember属性来装饰类,以便在WCF服务中使用。

晏昀
2023-03-14

否,DataContractAttribute不是必需的-WCF将推断序列化规则。我能想到的唯一一件事是检查的版本。NET在所有服务器上都是相同的。

更多信息:WCF数据协定/序列化

 类似资料:
  • 问题内容: 我可以将数据发送到服务器,但是只有在使用FromBody-Attribute时才可以。 为什么无法使用Post从主体自动读取json数据? 后端Web API 前端angularjs 问题答案: 仅因为某事是POST请求,所以没有明确的规则如何传递参数。POST请求仍可以包含URL中编码的查询参数。方法参数应该是“简单”类型(字符串,整数等)的查询参数。 通常,复杂类型应该是POST表

  • 本文向大家介绍wcf WCF中的序列化,包括了wcf WCF中的序列化的使用技巧和注意事项,需要的朋友参考一下 示例 序列化是将对象转换为字节流以存储对象或将其传输到内存,数据库或文件的过程。Microsoft页面序列化 下面的示例演示了WCF中的序列化: [DataContract]属性与类一起使用。在这里,它装饰有Person阶级。 [OperationContract]用于方法。在这里用Ad

  • 本文向大家介绍在8085中需要遮罩,包括了在8085中需要遮罩的使用技巧和注意事项,需要的朋友参考一下  假设8085由于RST6.5引脚而中断,并且已经分支到ISS的RST6.5引脚。然后,除了此ISS开头的DI指令外,除TRAP之外的所有中断均被禁止。因此,即使在执行RST6.5 ISS的过程中RST7.5引脚处于激活状态,也不会由于RST7.5而发生8085中断。实际上,较高优先级的中断是R

  • 出于某种原因,每当我尝试将属性添加到此类时,应用程序就会中断。无法确定需要配置哪个构造函数。 启动应用程序上下文时出错。要显示条件,请报告启用“调试”后重新运行应用程序。2021-12-17 00:40:17.874错误21160 --- [ main]o. s. b. d.日志失败分析记者: 应用程序启动失败 说明: com.example.demo.security.config.WebSec

  • 在cshtml文件中,我将字符串分配给属性。例如: 自从@模特。值字符串可以包含任何Unicode字符,显然该字符串必须经过编码。Razor会自动编码这个值吗?我猜它不会或不能,因为我可以很容易地把一个@Html。Raw在它之后立即把整个事情分解成两个标记。 我想我需要做的是: 对吗? 同样,如果我在脚本的JavaScript字符串中嵌入字符串值,我应该使用:

  • 我有以下对象。 现在我需要使用在标签中显示这个对象键,并在文本区域中显示值。本质上我想在对象属性上使用,可以吗? 我必须使用类似的东西: