问题标签 [datacontract]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
920 浏览

wcf - WCF 中的任何 XmlSerialization 限制(与 DataContract 相对)?

以后有什么我可能会后悔的吗,即如果我们选择 XmlSerialization 而不是 DataContract 有什么重大限制?到目前为止,我们已经接受了模式优先合约设计。

例如,如果我们想要进行参数检查、安全增强等……当我们尝试添加其他 WCF 功能时,现在使用 XmlSerialization 锁定会成为问题吗?

0 投票
1 回答
158 浏览

c# - Datacontracts 属性获取器运行两次

我有一组数据契约,它们充当我们希望公开的基类的包装器。一个简单的例子是:

我们还有一些其他属性,我们必须首先处理数据(我们正在转换对象图并且需要防止循环引用)。

我们看到的问题是这个 getter 会触发两次,一次在服务操作中,然后在序列化期间再次触发。这导致了两个问题:

  1. 我们手动添加到集合中,因为它运行了两次,集合中充满了欺骗。
  2. 如果在第二次运行期间抛出异常,它发生在操作中的 try/catch 之外,并且不会抛出错误。该服务抛出一个神秘的超时消息,查看错误的唯一方法是通过 WCF 跟踪日志。
0 投票
2 回答
1009 浏览

c# - 从数据合约生成实体数据模型

我想找到一种将数据契约转换为实体数据模型的快速方法。

考虑以下数据协定:

有没有一种简单的方法可以从此代码自动创建 ADO.NET 实体数据模型?

0 投票
2 回答
2059 浏览

wcf - Silverlight WCF 序列化 DataContract(IsReference=true) 问题

我有一个 Silverlight 3 UI,它可以访问 WCF 服务,而这些服务又可以访问使用 NHibernate 的存储库。为了克服 WCF 的一些 NHibernate 延迟加载问题,我使用了我自己的 DataContract 代理,如下所述:http: //timvasil.com/blog14/post/2008/02/WCF-serialization-with-NHibernate.aspx。在这里我设置了 preserveObjectReferences = true

我的模型包含循环(即带有 IList[Order] 的客户)

当我从我的服务中检索一个对象时,它工作正常,但是当我尝试将同一个对象发送回 wcf 服务时,我得到了错误:

System.ServiceModel.CommunicationException 未被用户代码处理 Message=尝试序列化参数 http://tempuri.org/:searchCriteria时出错。InnerException 消息是“对象图 ...”包含循环,如果不跟踪引用,则无法序列化。考虑使用将 IsReference 属性设置为 true 的 DataContractAttribute。

所以循环引用现在是 Silverlight 中的一个问题,所以我尝试将我的 DataContract 更改为 [DataContract(IsReference=true)] 但现在当我尝试从我的服务中检索一个对象时,我得到以下异常:

System.ExecutionEngineException 未处理 消息=引发了“System.ExecutionEngineException”类型的异常。内部异常:

有任何想法吗?

0 投票
2 回答
166 浏览

.net - 为什么我们在某些机器上出现 WCF“框架错误”,而在其他机器上却没有

0 投票
2 回答
997 浏览

wcf - 枚举、DataContracts 和 WCF 问题

我是 WCF 的新手,有一个简单的问题......

我的 DataContract 类从其公开的方法之一向消费者返回 Enum 类型。

消费者能够看到枚举类型,并实例化该类型的变量。

但是,我没有为服务中的枚举提供 [DataContract] 或 [EnumMember]。

我的问题是,为什么客户仍然能够看到它?我认为我必须将其设为 [DataContract] 才能与业务对象一起序列化,不是吗?

0 投票
1 回答
5187 浏览

.net - DataContract 已知类型 - 传递数组

我在通过 WCF 操作传递通用列表时遇到问题。在这种情况下,有一个 int 列表。示例 4在 MSDN中进行了描述。请注意,在 MSDN 示例中,描述为:

// 这将成功序列化和反序列化,因为泛型 List 等价于 int[],已添加到已知类型。

上面是 DataContract:

在客户端,我这样调用操作:

此外,这里是生成的 AccountData obj(WCF 代理)的装饰:

例外是:

尝试序列化参数 http://tempuri.org/:myEntity时出错。InnerException 消息是“类型通用列表”,数据合同名称为“ArrayOfint: http: //schemas.microsoft.com/2003/10/Serialization/Arrays ”,这是不应该的。将任何静态未知的类型添加到已知类型列表中

0 投票
1 回答
1231 浏览

c# - 我可以在调用端点之前找出端点支持哪些 WCF 方法吗?

我有一个 WCF 服务合同的版本控制问题,其中为操作调用的众多端点之一缺少合同中的一种方法。

我的问题是,在尝试调用该命令之前,如何确保该命令在客户端可用?

我试过了:

不幸的是,这是使用调用应用程序的合同,实际上并没有描述端点本身的实现。结果,即使端点未能执行命令,它也会返回 true。

0 投票
1 回答
1354 浏览

wcf - WCF DataContractSerializer 行为

我在使用 DataContractSerializer 时看到了一些异常行为。我已经定义了一个消息契约,如下所示:

我正在向它发送一条如下所示的 XML 消息:

我的服务按预期反序列化此 XML。在我的服务中,我使用 DataContractSerializer 创建一个 XML 字符串,这就是事情变得奇怪的地方。我正在使用这样的序列化程序:

完成后,outputMessage 将包含以下 XML:

不用说,任何期望接收原始 XML 消息的东西都无法解析它。所以我想我有两个问题:

  1. 为什么 DataContractSerializer 将额外的外部节点添加到我的 XML 输出中?
  2. 有没有办法阻止它这样做?

谢谢。

我可能应该添加这是.NET 4。

0 投票
1 回答
2164 浏览

c# - C# 继承 DataContract 派生类型

我已经通过 msdn:datacontracts 进行了公平的阅读,但我不知道为什么以下内容不起作用。那么这里有什么问题呢?为什么 Datacontract 序列化程序无法识别 ExtendedCanadianAddress?

不应使用数据合同名称“CanadianAddress: http://tempuri.org/Common/Types ”键入“XYZ.ExtendedCanadianAddress”。将任何静态未知的类型添加到已知类型列表中 - 例如,通过使用 KnownTypeAttribute 属性或将它们添加到传递给 DataContractSerializer 的已知类型列表中。

鉴于: