【问题标题】:WCF service, how to hide internal methods?WCF服务,如何隐藏内部方法?
【发布时间】:2008-11-19 16:29:49
【问题描述】:

在我的 WCF 服务中,我有当前公开的方法,但我想对外界隐藏它们,但能够在我的 WCF 服务中使用它们。

我在看的是内部的吗?

【问题讨论】:

    标签: c# accessor


    【解决方案1】:

    是的,内部将限制对当前程序集的访问

    http://msdn.microsoft.com/en-us/library/ba0a1yw2.aspx

    【讨论】:

    • 确实它限制了访问,但这不是一个完整的答案。真的,“public”是可以的,只要开发人员没有像上面所说的那样使用 ServiceContract 属性公开它们。
    【解决方案2】:

    为了不让外界(WCF 客户端)知道它们,你所要做的就是不要用 [ServiceContract] 属性标记它们,那么它们是否公开也没关系

    如果您分发包含 WCF 服务的 DLL,您可以标记方法:

    • private(只能在同一个类中调用)
    • 受保护(与私有相同 + 继承自它的类)
    • internal(与 private 相同 + 同一程序集中的所有其他类 + 程序集中已在 InternalsVisibleTo 中命名的任何类(google it)

    【讨论】:

    • 感谢用户友好的定义。 InternalsVisibleTo 是一个新的!
    • 我同意移除 [ServiceContract] 装饰是正确的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    相关资源
    最近更新 更多