如何在SignalR Hub中隐藏公共方法

时间:2014-05-01 00:09:45

标签: c# signalr signalr-hub

有没有办法从客户端隐藏单一枢纽中的公共方法?我没有提到身份验证。我不希望为客户端api生成它们。但是,我希望能够从我的项目中的其他DLL访问它们(因此我需要公开而不是内部)。我有调用的控制器方法来执行各种会话查找,并且我想从控制器调用我的SignalR集线器。

2 个答案:

答案 0 :(得分:1)

我之前从未使用过SignalR,但我认为该项目有一个Assembly文件。如果是这样,您可以使用InternalsVisibleToAttribute

否则还有EditorBrowsableAttribute

答案 1 :(得分:1)

如果客户端永远不应该调用该方法,那么它根本不应该在集线器中;我建议从集线器中提取此逻辑并仅将它们用作连接器。

您可以在集线器配置中disable the generated proxy

var config = new HubConfiguration
    {
        EnableJavaScriptProxies = false
    };

但这会影响所有方法,据我所知,目前无法根据方法进行自定义(客户端仍然可以通过调用调用方法)。