MyTypeDataContract 位于 Silverlight 客户端 MyTypeOfT 中

发布于 2024-11-06 03:38:44 字数 184 浏览 3 评论 0原文

我有一个带有 Property的 WCF 服务DataContract(使用 KnownType 等),但在 Silverlight 客户端中我只有 PropertyOfint、PropertyOfstring、... 类型,但在 Silverlight 中我还需要一个泛型类型。如何?

i have a WCF service with a Property<T> DataContract (with KnownType, et cetera...), but in the Silverlight client I have just PropertyOfint, PropertyOfstring, ... types, but I need in Silverlight also a generic type. How?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

铜锣湾横着走 2024-11-13 03:38:44

SOAP 标准不支持泛型的概念,因此 WCF 不直接支持它。但是,您可以实现 如果您通过在客户端和服务之间共享 ServiceContract DLL 来控制客户端和 WCF 服务,则支持此支持。确保这确实是您想要的,因为它不是推荐的 SOA 最佳实践。

这里一篇文章描述了如何方法有效。通过共享 ServiceContract(不是服务实现 DLL)并使用 WCF ChannelFactory 类,您不需要生成代理类,因为 ChannelFactory 类将为您动态执行此操作。 ServiceContract 程序集还需要包含所有引用的 DataMember 标记的类,这是此方法的主要缺陷,因为它们包含的任何逻辑也将被共享。只要 DataMember 类只是数据传输对象 (DTO),那么您就不会完全改变 SOA 租户的形状。本文还解释了如何使用 WCF ClientBase 类执行此操作。

The soap standard doesn't support the concept of generics so it is not supported directly in WCF. However, you can achieve this support if you control both the client and the WCF service by sharing the ServiceContract DLL between the client and the service. Make sure that this is really what you want since it is not a recommended SOA best practice.

Here is an article that describes how this approach works. By sharing the ServiceContract (not the service implementation DLL) and using the WCF ChannelFactory class you do not need to generate a proxy class since the ChannelFactory class will do this dynamically for you. The ServiceContract assembly will also need to contain all the referenced DataMember marked classes which is the main flaw of this approach because any logic they contain will also be shared. As long as the DataMember classes are just data transfer objects (DTO) then you're not bending the SOA tenents entirely out of shape. The article also explains how to do this with the WCF ClientBase class.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文