WCF服务参考可移植类库内部

时间:2014-02-04 18:29:13

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

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

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

对此有任何解释吗?

由于

2 个答案:

答案 0 :(得分:0)

添加服务引用时,单击“高级”按钮。生成的“服务引用设置”对话框中的第一项使您能够为服务代理类生成公共或内部成员。

enter image description here

答案 1 :(得分:0)

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

在文件中有一个标记必须设置为true:

<GenerateInternalTypes>true</GenerateInternalTypes>

我仍然想知道是否有人知道为什么在向可移植类库添加服务引用时强制公开生成类的访问级别的原因。因此,如果那里的任何人都能解决问题,请执行以下操作:)