如何在SignalR v2客户端 - 服务器方法上使用PascalCasing?

时间:2015-01-09 04:14:12

标签: c# signalr

我创建了一个简单的Hub:

public class MyHub : Hub
{
    public void Hello()
    {
        Clients.All.Hello();
    }
}

我想在客户端使用:

$.connection.myHub.server.Hello();

但默认情况下,它会创建为:

$.connection.myHub.server.hello();

如何更改它以使用PascalCase而不是camelCase? (最好自动适用于所有事情)

1 个答案:

答案 0 :(得分:0)

您可以使用HubMethodNameAttribute手动强制每种方法的大小。

using Microsoft.AspNet.SignalR.Hubs;

public class MyHub : Hub
{
    [HubMethodName("Hello")]
    public void Hello()
    {
        Clients.All.Hello();
    }
}

如果你想在全球范围内进行这种改变,那就不那么简单了。如果您想这样做,可能需要您实现自己的IMethodDescriptorProvider

您可能需要代理默认的ReflectedMethodDescriptorProvider并将返回的MethodDesriptors的名称更改为PascalCase。如果您这样做,则可以使用GlobalHost.DependencyResolver注册自定义IMethodDescriptorProvider