Skip to content

HubClientProxyGenerator doesn't run when using inferred generic type arguments #43510

Open
@albi005

Description

@albi005

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.

Metadata

Metadata

Assignees

Labels

area-signalrIncludes: SignalR clients and serversbugThis issue describes a behavior which is not expected - a bug.help candidateIndicates that the issues may be a good fit for community to help with. Requires work from eng. team

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions