问题标签 [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.
wcf - WCF 服务可以使用的 DataContract 数量是否有限制?
使用 WCF3.5SP1、VS2008。构建一个公开大约 10 种服务方法的 WCF 服务。我们已经定义了大约 40 种服务使用的 [DataContract] 类型。我们现在体验到向项目添加额外的 [DataContract] 类型(在与其他现有类型相同的命名空间中)不会正确公开。新类型不在使用 WSDL 生成的 XSD 模式中。我们已经到了复制和重命名现有(和工作)类型的地步,但它也不存在于生成的 WSDL/XSD 中。
我们已经在两台不同的开发人员机器上尝试过,同样的问题。
可以作为服务的 [DataContract] 公开的类型数量是否有限制?每个命名空间?
c# - 对如何在 C# 中使用 JSON 感到困惑
几乎所有关于将 C# 与JSON结合使用的问题的答案似乎都是“使用 JSON.NET”,但这不是我要寻找的答案。
我这么说的原因是,从我在文档中读到的所有内容来看,JSON.NET 基本上只是 .NET 框架中内置的 DataContractSerializer 性能更好的版本......
这意味着如果我想反序列化一个 JSON 字符串,我必须为我可能拥有的每个请求定义完整的强类型类。因此,如果我需要获取类别、帖子、作者、标签等,我必须为这些内容中的每一个定义一个新类。
如果我构建了客户端并确切知道字段是什么,这很好,但我使用的是其他人的 API,所以我不知道合同是什么,除非我下载示例响应字符串并从 JSON 字符串手动创建类.
这是唯一的方法吗?有没有办法让它创建一种可以用 json["propertyname"] 读取的哈希表?
最后,如果我必须自己构建这些类,那么当 API 发生变化而他们没有告诉我时会发生什么(因为 twitter 似乎因为这样做而臭名昭著)?我猜我的整个项目都会中断,直到我进入并更新对象属性......
那么使用 JSON 时的一般工作流程到底是什么?一般来说,我的意思是与图书馆无关。我想知道一般情况下它是如何完成的,而不是专门针对目标库......
wcf - WCF - 从接口继承的 DataContract
我有一个数据合同作为我的 WCF 接口的一部分,它继承自 IIdentity:
该服务返回我的 AuthenticationIdentity 对象就好了。但是,当我尝试对客户端进行明显的转换时:
我收到一条投诉,称 AuthenticationIdentity 无法转换为 IIdentity。我尝试将 ServiceKnownTypes 添加到界面:
但仍然没有运气。有任何想法吗?
c# - 在 WCF 中,多态数据契约是拥有多个操作契约还是只有一个操作更好?
我想知道在 WCF 中使用多个操作合同或只有一个操作合同与多态数据合同是否更好。
让我给你一个小例子:
或者
动作契约将是一个抽象类,action1Contract 和 action2Contract 都将从中继承。动作契约将do()
在其接口中指定成员函数,而该成员函数又将在子类中重载
个人而言,我发现第二种方法更有趣,因为它允许您将数据和操作很好地封装在派生的 actionContract 中,从而更容易添加新操作。但这是我第一次使用 WCF,所以您可能更了解!
json - Asp.Net MVC 2:与客户端 javascript 共享数据合同的任何方式?
如果您有以下情况:
- Asp.Net MVC 2 项目具有定义视图模型的对象类。
- 使用 JSON 将这些模型序列化到 Web 浏览器客户端。
- 客户向对象添加信息,例如发票上的订单行。
- 客户端将对象发送回服务器进行处理。
有没有办法与客户端共享 JSON 对象的数据合约?我真的想让服务器使用 Order 工厂创建一个 Order,然后将其发送给客户端。客户端使用数据合同添加订单行,并将完全填充的对象作为 JSON 发送回。
我真的很想在客户端的 JavaScript 中执行以下操作:
任何指向 Asp.Net MVC 2 的示例或网页链接都会非常有帮助。
linq-to-sql - 克隆 LINQ To SQL 对象扩展方法引发对象处置异常
我有这个扩展方法来克隆我的 LINQ To SQL 对象:
但是,当我携带未加载所有引用的对象时,在使用 DataLoadOptions 查询时,有时它会抛出对象已处理的异常,但问题是我不要求未加载的引用(null)。
例如,我有很多引用的客户,我只需要保存地址引用 EntityRef<> 并且我不加载任何其他内容。但是,当我克隆对象时,此异常迫使我使用 Customer 对象加载所有 EntitySet<> 引用,这可能太多并减慢应用程序速度。
有什么建议么?
.net - 将 WCF 与抽象类一起使用
如何在 WCF 中为抽象类定义 DataContract?
我有一个“人”类,我使用 WCF 成功通信。现在我添加一个从 Person 引用的新类“Foo”。一切都还好。但是当我使 Foo 抽象并定义一个子类时,它会失败。它在服务器端失败并出现 CommunicationException,但这并不能告诉我太多。
我为测试而制作的简化类:
c# - 设计 WCF 合同(操作/数据)
我目前正在寻求设计一些 WCF 服务,并希望获得社区对处理操作/数据合同的最佳方式的意见。
我有 2 个基本操作合同,第一个创建报价,第二个在报价中添加项目(并在幕后计算总数)。
第一个接收客户信息和商店信息并返回报价。
第二个接受报价和项目对象,计算总数并返回项目的报价。
我的问题是关于如何在这种情况下设计数据合约?
对于CreateQuote,应该传入一个带有客户属性和商店属性集的报价对象,还是应该有某种包含客户和商店对象但没有传入报价对象的 QuoteRequest 对象?
对于AddQuoteItem,是否应该使用包含 Quote 对象的必需属性集传入 QuoteItem 对象,或者是否应该存在具有 Quote 对象和 item 对象(没有关系)的 QuoteItemRequest 对象,然后使用 QuoteItem 对象重新计算 Quote回来?
换句话说,它们应该看起来像这样吗?
或者他们应该看起来像这样?
rest - WCF 休息多个 DataContracts 包装
所以我正在使用 Rest WebHttp 调用 wcf 网络服务。我还设置了第二个绑定 mex 进行测试。我的方法有效,但是当我尝试通过 fiddler 或通过客户端应用程序直接 httppost 进行测试时,我收到 400 Bad request 错误。我将多个数据合同传递给该方法。它迫使我使用 Wrapped 的 BodyStyle,但我不知道如何格式化我的 xml 以进行测试。我创建了一个测试方法来尝试这个和同样的错误。这是我的代码:我所有的其他方法都适用于一个数据合同,但我有两个的这个没有。我相信问题出在这篇文章底部的 xml 中,它需要被包装,但我不知道如何包装它。
我正在使用的 xml
wcf - 使用代理在 WCF 中序列化委托?
我有一个想法,但我需要帮助来实现它。
WCF 在其合同中不支持委托。相反,它有一个繁琐的回调合约机制,我正在寻找一种方法来克服这个限制。
我考虑过使用 aIDataContractSurrogate
将合同中的每个委托替换为将被序列化到远程端点的令牌。在那里,令牌将被反序列化为生成的委托。此生成的委托将发送一个通用回调消息,该消息封装了所有参数(调用委托时使用的参数)。
通用回调消息将到达第一个端点,并在那里使用参数调用原始委托。
这是有目的的(简化的)序列:
- A 调用 B-proxy.Foo(callback)
- 回调通过 DelegateSurrogate 序列化。
- DelegateSurrogate 将委托存储在专用委托存储中,并用令牌替换它
- 消息到达 B 的端点
- 令牌通过 DelegateSurrogate 反序列化
- DelegateSurrogate 构造一个生成的委托
- B.Foo(generatedCallback) 被调用
- 稍后,B 正在调用 generatedCallback(args)
- generatedCallback(args) 在 A 的端点上调用一个专用的通用合约:CallbackContract-proxy.GenericCallback(args)
- 在 A 的端点上调用 CallbackContract.GenericCallback(args)
- 从存储中检索原始回调并调用:callback(args)
NServiceBus
我之前已经使用服务总线(我知道如何实现步骤 3、6、9 和 11。我还不知道如何连接 WCF 中的所有内容——尤其是代理部分。
就是这样 - 我希望我的问题是有道理的,并且这里的集体智慧将能够帮助我建立这个。
这是我想要的解决方案的示例用法: