小编Dhr*_*shi的帖子

SignalR 可以在客户端断开连接时对消息进行排队,并在客户端重新连接时将消息重新发送给客户端吗?

目前,我们使用 SignalR 在 UI 客户端上从后端接收实时消息。UI 客户端在在线并连接到 SignalR 时接收消息,并在断开连接时错过消息(例如:用户关闭页面并且 SignalR 断开客户端连接)。但是,现在我们需要向用户显示所有消息,包括 UI 客户端离线时 SignalR 发送的消息。SignalR 可以支持这种场景吗?该要求类似于 UI 客户端消息的持久队列,但我们使用 SignalR 向所有客户端广播消息。

signalr signalr-hub signalr.client signalr-backplane asp.net-core-signalr

7
推荐指数
1
解决办法
2811
查看次数

Autofac 无法解析构造函数的参数“System.String applicationClientId”

我有以下类/接口结构:

class ProviderSetting
{
    public delegate ProviderSetting Factory(string applicationClientId,
        string appKey);

    public ProviderSetting (string applicationClientId, string appKey)
    { ... }
}
Run Code Online (Sandbox Code Playgroud)

class Provider : IProvider
{
    public Provider(ProviderSetting setting)
    { ... }
}
Run Code Online (Sandbox Code Playgroud)

class Ingestor: IIngestor
{
    public Ingestor (IProvider provider)
    { ... }
}
Run Code Online (Sandbox Code Playgroud)

我使用 autofac 按以下方式执行依赖注入:

var builder = new ContainerBuilder();
builder.RegisterType<ProviderSetting>().AsSelf();
builder.RegisterGeneratedFactory(typeof(ProviderSetting.Factory));
builder.RegisterType<Provider>().As<IProvider>();
builder.RegisterType<Ingestor>().As<IIngestor>();
Run Code Online (Sandbox Code Playgroud)

并解决如下:

var settings = container.Resolve<ProviderSetting.Factory>().Invoke("<appId>", "<appKey>");
var provider = container.Resolve<IProvider>(new TypedParameter(typeof(ProviderSetting), settings));
var ingestor = container.Resolve<IIngestor>(new TypedParameter(typeof(Provider), provider));
Run Code Online (Sandbox Code Playgroud)

但我得到的例外是:

DependencyResolutionException:在类型“ProviderSettings”上使用“Autofac.Core.Activators.Reflection.DefaultConstructorFinder”找到的构造函数均不能使用可用服务和参数调用:无法解析构造函数“Void .ctor(”的参数“System.String …

.net c# dependency-injection autofac

3
推荐指数
1
解决办法
5483
查看次数