dotnet/aspnetcore
在 GitHub 查看HubClientProxyGenerator doesn't run when using inferred generic type arguments
Open
#43,510 创建于 2022年8月24日
area-signalrbughelp wanted
仓库指标
- Star
- (37,933 star)
- PR 合并指标
- (平均合并 16天 9小时) (30 天内合并 258 个 PR)
描述
Is there an existing issue for this?
- I have searched the existing issues
Describe the bug
SignalR client proxy code isn't generated when using the extension method with auto-inferred type arguments (as suggested by Visual Studio).
Expected Behavior
The proxy code is generated.
Steps To Reproduce
Add Microsoft.AspNetCore.SignalR.Client.SourceGenerator package reference, add this code to a C# file:
using Microsoft.AspNetCore.SignalR.Client;
namespace ConsoleApp4;
internal static class Program
{
static HubConnection hubConnection = null!;
static void Main()
{
hubConnection = new HubConnectionBuilder().WithUrl("...").Build();
}
static void Register(IClient client)
{
// \/ Remove type argument here \/
hubConnection.RegisterClient<IClient>(client);
}
}
[AttributeUsage(AttributeTargets.Method)]
internal class HubServerProxyAttribute : Attribute
{
}
[AttributeUsage(AttributeTargets.Method)]
internal class HubClientProxyAttribute : Attribute
{
}
internal static partial class MyCustomExtensions
{
[HubClientProxy]
public static partial IDisposable RegisterClient<T>(this HubConnection connection, T provider);
[HubServerProxy]
public static partial T GetServerProxy<T>(this HubConnection connection);
}
public interface IServerHub
{
Task SendMessage(string message);
}
public interface IClient
{
Task ReceiveMessage(string message);
}
public class Client : IClient
{
public Task ReceiveMessage(string message) => Task.CompletedTask;
}
then remove the generic type argument at line 18.