问题标签 [datacontracts]

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 投票
0 回答
192 浏览

wcf - 在不重新编译服务项目/解决方案的情况下向 WCF 服务添加更多数据合同/DTO 的策略

我目前正在开发一个 WCF 服务,该服务将随着时间的推移而发展以包含新的 DTO。我目前正在使用 MEF 和服务实现来导出 web 服务对象。我在同一个解决方案中有 WCF 服务项目和数据合同的项目。目前,这两个项目都在一个解决方案下编译。

本质上,我想做的是有一个可以合并到 WCF 服务项目中的方案,以便将来可以添加新的数据合同。此方案不必使用 MEF。这些新的数据合约将在不同的解决方案中开发,但在相同的命名空间下(或不在同一个命名空间下)。编译后,我只需要将新的 datacontracts 程序集放在 ..\bin 文件夹中并重新启动服务。然后,该服务将获取新的数据合同,以便将它们注入 WSDL。

我希望这足够具体。

0 投票
2 回答
2400 浏览

wcf - 服务契约与领域对象

假设我的应用程序有两个接口:

  • 一个网页前端
  • 提供数据的后端

它们都与 Web 服务对话,而该 Web 服务反过来处理业务逻辑并与单独的数据层对话,该数据层保留对象。

那么,如果 Web 服务的每个客户端都使用该 Web 服务的 DataContracts,我需要域对象来做什么

领域驱动设计在哪里适合,它给我的架构带来什么优势?

还是我已经拥有的东西很好,我根本不需要域对象?

我是否误解了领域驱动设计的含义和目的?

0 投票
2 回答
7860 浏览

wcf - WCF - 合同版本控制(通过示例)

对于熟悉版本控制服务/数据合同的最佳实践的人来说,这应该很容易。我想确保以正确的方式使用此版本控制。

所以,假设我们有一个服务合同:

和数据合同:

如果我真的需要将后者更改为其他内容:(以下仅为示例)

...那么我应该如何从服务中使用 DTOCustomer2 而不是 DTOCustomer1 以便新旧客户端兼容?在这种情况下推荐什么?我的服务合同会改变吗?AFAIK 我不需要更改服务合同。服务合同会是什么样子?我需要一个新的端点吗?我是否需要使用新数据合约的新运营合约?

EDIT1: 简单地改变

bool AddCustomer(DTOCustomer1 客户);

进入

bool AddCustomer(DTOCustomer2 客户);

会做?

EDIT2: EDIT1 的答案是No,因为 DTOCustomer2 具有不同的命名空间,但如果它具有相同的命名空间,它可能会起作用。我仍然不知道这里最好的事情是什么,并希望有人能提出一个好的答案。

先感谢您!

0 投票
1 回答
2653 浏览

c# - 如何在 XSD 数据协定中指定泛型类型参数?

我有以下用于 Web 服务方法调用的请求和响应数据协定对

问题是我想要的是一种表达方式(伪代码)

并根据我通过的类型让响应包含一个 IList。

使用我上面的数据契约 XSD,当我只想指定类型定义时,它期望请求对象中有一个类的实例。

真的我想我想要什么

但我不确定如何在 XSD 中指定泛型类/方法。谁能指点我一篇好文章或解释我如何在 XSD 中定义它?

我也在使用 WSCF blue 进行代码生成。

0 投票
1 回答
136 浏览

c# - 寻找 MS 共享图像示例的应用程序?

我一直在修改这个以在我的应用程序中实现共享魅力:http: //code.msdn.microsoft.com/windowsapps/Sharing-Content-Source-App-d9bffd84

这是一个很好的资源,但在使用 SetBitmap() 时,我似乎无法让图像共享工作。

当使用延迟渲染器示例或注释掉图像示例的 StorageItem 部分时,共享面板会出现,但它说我没有任何可用于共享该数据的应用程序。我已经尝试了一些不同的照片应用程序。如果不是所有应用程序都接受图像数据,那么在数据合同中使用 StorageItems 的方式是不是,还是我遗漏了什么?

0 投票
1 回答
587 浏览

wcf - WCF 输入/输出 DataContract 定义指南

我需要一些关于为以下场景定义 DataContracts 的最佳方法的指导: 1. 我有 2 个 Web 方法,一个用于上传原始数据 2. 此数据在服务器上用于某些计算。即一个项目有一组计算,3。所以我的实体设计是这样的,项目实体有计算实体的集合。该集合未标记为 DataMember。4. GetItemDetails 方法返回每个项目及其计算集合。5. 我最终为 Upload 和 GetItemDetails 操作定义了 2 个不同的 DataContract,因为 Item 是我的主要实体,用于我的所有业务逻辑操作,但它的计算集合是在服务器端生成的数据,必须按需返回(获取项目详细信息)。既然' s 处理数据似乎不适合在上传时公开它,因为在计算集合中不需要输入。6. 在我的 GetItemDetails 方法中,我使用“项目”实体并分别加载项目集合。计算集合,然后将其转换为我的输出数据合同,其中项目和集合都暴露了。

这种方法的缺点是必须为相同的实体表示维护 2 个数据合约。我试图搜索在 GetItemDetails 方法的 Calculation 集合上动态添加 DataMember 属性的选项,但没有成功。我希望情况很清楚。我的问题是在这种情况下定义数据合同的最佳方式是什么,这样客户端就不必处理 2 个不同的代理类来代表上传和获取的相同实体。如果两者都使用相同的实体,这是否是一个正确的解决方案,以便我的上传合同公开(然后忽略任何输入)计算集合,即使用户不希望将其提供给我的上传操作?

我将不胜感激这方面的任何帮助。

0 投票
1 回答
738 浏览

wcf - wcf 数据合同中的条件必填字段

他们是否可以通过任何方式在 dataContract 中设置有条件的强制数据字段,例如 - 我们将 IsRequired 属性作为 DataMember 属性的一部分以确保始终传递特定的数据字段,是否可以通过任何方式将数据字段设置为有条件的在 WCF 中是强制性的吗?

0 投票
1 回答
2638 浏览

wcf - WCF实体类中[Datacontract]属性的用途是什么

我正在使用 .net 4.0 和 wcf 服务。我有未使用[Datacontract]属性定义的业务实体类。

当我尝试检索少于 1000 条业务实体类类型的记录时,它可以正常工作,但是当我尝试检索超过 1000 条业务实体类类型的记录时,它会抛出此异常:

格式化程序在尝试反序列化消息时抛出异常:尝试反序列化参数 http://tempuri.org/:Securities时出错。InnerException 消息是“对象图中可以序列化或反序列化的最大项目数为“65536”。更改对象图或增加 MaxItemsInObjectGraph 配额。'。有关更多详细信息,请参阅 InnerException。

当使用[DataContract]为业务实体类定义的属性时,问题得到了解决。

  1. 那么[DataContract]属性在上述情况下起什么作用呢?
  2. [DataContract]使用有属性和没有属性定义的业务实体类有什么区别[DataContract]
0 投票
1 回答
1165 浏览

wcf - WCF 客户端对 DataContracts 的引用(“Datasources”自动生成)

我有一个引用两个程序集的客户端:一个 WCF 服务和包含 dataContracts 的 DLL。

同时,客户端使用 WCF Service 的 WSDL。问题是服务引用不代理 DataContracts(只是服务方法)。相反,它将 DataContracts 放入“Properties/DataSources/”文件夹中。每个都有一个扩展“数据源”打开时,我得到一个如下所示的 XML:

提前感谢您的回复。

0 投票
0 回答
242 浏览

.net - 如何从具有动态名称的 DataContract .NET 中获取 JSON 对象

我有以下对象:

通过使用 DataContractJsonSerializer 的默认序列化,我得到以下 JSON

但我想要得到的是以下

作为字典条目的键“Rable”和值“RableRable”。