c# - 从 WCF 服务转换类型

标签 c# wcf type-conversion wcf-client

我敢肯定这一定是一个很常见的问题。我有两个 WCF 服务,它们基本上将标准访问权限和管理员访问权限公开给一个更大的服务。

每个服务上都有一个类似的方法FooFoo 采用在我的服务中定义的 TemplateInfo 类型的参数。

在我的客户端上,我引用了 ClientAdminClientClient.Foo(TemplateInfo) 需要 Client.TemplateInfoAdminClient.Foo(TemplateInfo) 需要 AdminClient.TemplateInfo。我知道一旦服务到达 Client.TemplateInfoAdminClient.TemplateInfo 是同一件事。

我正在尝试弄清楚如何实例化 TemplateInfo 和/或将其转换为与客户端和管理方法一起使用。有相当多的代码来创建这个对象,所以我希望不要为每种类型重复它。

类型在共享程序集中定义,我在我的代理中“重用类型”。但是我得到了两种不同的类型,因为我有两个服务引用。

做类似 (AdminClient)TemplateInfo 的事情会很棒,但也许我会创建一个克隆方法来转换类型。

最佳答案

没有办法做到这一点。它们是不同的类型。

您可以将该类型放入服务和客户端都引用的类库中。您可以告诉“添加服务引用”重用类型(这是默认设置),然后将使用类库中的类型。


请注意,客户端应用程序还需要引用与这两个服务相同的类库。

关于c# - 从 WCF 服务转换类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5237355/

相关文章:

c# - asp.Net 中 DateTime 的默认时区

c# TimeZoneInfo 序列化

c# - .NET 中的视频 session

c# - UTF8 byte[] 到字符串的转换

c# - 在 GridView 中显示包含列表的对象列表

c# - 如何根据 C# 中的枚举值获得优势?

c# - WebBrowser Navigate 和 InvokeScript 的流程

c# - 无法创建相对 URI,因为 'uriString' 参数表示绝对 URI

asp.net-mvc - 模型绑定(bind)程序无法处理 double.MAX 字符串表示形式返回 double

java - 在java中将字符串转换为日期