【问题标题】:WCF Service Reference Portable Class Library InternalWCF 服务参考可移植类库内部
【发布时间】:2014-02-04 18:29:13
【问题描述】:

我已经向可移植类库添加了一个服务引用,并且我可以毫无障碍地使用它,但是对于我的生活,我无法弄清楚为什么生成的类的访问级别仅限于公共。这对我来说毫无意义,人们想要在可移植类库中包含服务引用的全部原因是将其功能包装到更友好的类中,这些类将 WCF 服务调用组合成更高级别的方法,同时能够共享多个平台之间的包装器。

我认为这可能是因为我已包含在库中的平台,但在删除 must 并仅保留 Windows 8 和 .NET 4.5 后,我仍然无法更改访问级别。

对此有什么解释吗?

谢谢

【问题讨论】:

    标签: c# .net wcf internal portable-class-library


    【解决方案1】:

    添加服务引用时,单击“高级”按钮。生成的 Service Reference Settings 对话框中的第一项使您能够为服务代理类生成 Public 或 Internal 成员。

    【讨论】:

    • 我知道你可以这样做我的意思是允许你更改访问级别的下拉菜单被禁用。我应该更清楚,抱歉。
    • 哦...抱歉,您是对的,这并不完全清楚。我想知道您是否可以使用 svcutil.exe 来生成代理并能够以这种方式设置访问级别。
    【解决方案2】:

    我设法通过手动编辑 ($ProjectDir)/Service References/Reference.svcmap 文件解决了这个问题。这真的很简单,应该早点想到。我最终可能会破坏某些东西(必须有理由禁用生成的类的访问级别),但只要它现在可以工作。

    文件里面有一个标签,必须设置为true:

    <GenerateInternalTypes>true</GenerateInternalTypes>

    我仍然想知道是否有人知道为什么在向可移植类库添加服务引用时生成的类的访问级别被强制公开。因此,如果有人可以提供一些启示,请这样做:)

    【讨论】:

      猜你喜欢
      • 2017-05-31
      • 2010-11-18
      • 2016-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      相关资源
      最近更新 更多