gpt4 book ai didi

SignalR 结构图依赖解析器(为 Microsoft.AspNet.SignalR.Messaging.IMessageBus 指定)

转载 作者:行者123 更新时间:2023-12-01 10:43:58 25 4
gpt4 key购买 nike

我该如何解决这个错误?

版本

Microsoft.AspNet.SignalR.Core 2.2.0,结构图 3.1.4.143

global.asax signalR 依赖解析

// SIGNALR DEPENDENCY RESOLVER
GlobalHost.DependencyResolver = new StructureMapSignalRDependencyResolver(Container ?? ObjectFactory.Container);

StructureMapSignalRDependencyResolver

public class StructureMapSignalRDependencyResolver : DefaultDependencyResolver
{
private readonly IContainer _container;
public StructureMapSignalRDependencyResolver(IContainer container)
{
_container = container;
}

public override object GetService(Type serviceType)
{
object service = null;
//Below is a key difference between this StructureMap example, GetInstance is used for concrete classes.
if (!serviceType.IsAbstract && !serviceType.IsInterface && serviceType.IsClass)
{
//If the type is a concrete type we get here...
service = _container.GetInstance(serviceType);
}
else
{
// Non concrete resolution which uses the base dependency resolver if needed.
service = _container.TryGetInstance(serviceType) ?? base.GetService(serviceType);
}
return service;
}

public override IEnumerable<object> GetServices(Type serviceType)
{
var objects = _container.GetAllInstances(serviceType).Cast<object>();
return objects.Concat(base.GetServices(serviceType));
}
}

错误

没有注册默认实例,无法自动确定类型“Microsoft.AspNet.SignalR.Messaging.IMessageBus”

没有为 Microsoft.AspNet.SignalR.Messaging.IMessageBus 指定配置

1.) new AckSubscriber(IMessageBus 的默认值IAckHandler 的默认值)2.) Microsoft.AspNet.SignalR.Infrastructure.AckSubscriber3.) Microsoft.AspNet.SignalR.Infrastructure.AckSubscriber 实例4.) Container.GetInstance(Microsoft.AspNet.SignalR.Infrastructure.AckSubscriber)

enter image description here

enter image description here

最佳答案

首先尝试从基类解析。

    public override object GetService(Type serviceType)
{
if (serviceType == null)
return null;

var service = base.GetService(serviceType);
if (service != null) return service;

return (!serviceType.IsAbstract && !serviceType.IsInterface && serviceType.IsClass)
? container.GetInstance(serviceType)
: container.TryGetInstance(serviceType);
}

关于SignalR 结构图依赖解析器(为 Microsoft.AspNet.SignalR.Messaging.IMessageBus 指定),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28233885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com