TypedSignalR.Client.TypeScript icon indicating copy to clipboard operation
TypedSignalR.Client.TypeScript copied to clipboard

How to ignore dependency injection arguments?

Open gcoda opened this issue 9 months ago • 1 comments

Is there an easy way to make this work? Overloading breaks runtime DI, using IDbContextFactory<DataContext> ctx inside of HubInterface breaks Tapper.

[Hub]
public interface IInventoryHub
{
    Task<Shelf[]> GetShelves();
}

public class InventoryHub : Hub<IInventoryReceiver>
{
    public async Task<Shelf[]> GetShelves(IDbContextFactory<DataContext> ctx)
    {
        await using var db = await ctx.CreateDbContextAsync();
        var shelves = db.Shelves.ToArray();
        return shelves;
    }
}

Edit: it is possible to use DI in constructor

public class InventoryHub(IDbContextFactory<DataContext> ctx) : Hub<IInventoryReceiver>, IInventoryHub

and it works, so not big deal

gcoda avatar May 17 '24 14:05 gcoda