小编Fra*_*ier的帖子

设计原因使ToUpper成为Char的静态方法

在C#中,我们在类型字符串上有这个非静态方法:

"abc".ToUpper()
Run Code Online (Sandbox Code Playgroud)

但对于char,我们需要使用静态方法:

char.ToUpper('a')
Run Code Online (Sandbox Code Playgroud)

在向初学者介绍c#时,他们总是希望能够编写以下内容:

'a'.ToUpper()
Run Code Online (Sandbox Code Playgroud)

有没有人有这样设计的见解?

我唯一能想到的就是性能,但我也希望类型字符串的静态ToUpper()也是如此.

c#

18
推荐指数
1
解决办法
452
查看次数

将Autofac与SignalR一起使用时的范围错误

我正在尝试HttpContextBase在我的SignalR集线器中注入一个:

public class EventHub : Hub, IDisconnect
{
    private readonly HttpContextBase _httpContextBase;

    public EventHub(HttpContextBase httpContextBase)
    {
        _httpContextBase = httpContextBase;
    }

    [...]
}
Run Code Online (Sandbox Code Playgroud)

注册码如下所示:

private static void InitAutofac()
{
    var builder = new ContainerBuilder();

    var assembly = typeof (MvcApplication).Assembly;

    builder.RegisterControllers(assembly).PropertiesAutowired();
    builder.RegisterModule(new AutofacWebTypesModule());
    builder.RegisterFilterProvider();

    builder.RegisterAssemblyTypes(assembly)
        .Where(InterfaceBasedInjectedClasses())
        .AsImplementedInterfaces()
        .InstancePerLifetimeScope();

    builder.RegisterAssemblyTypes(assembly)
        .Where(InterfaceLessInjectedClasses())
        .InstancePerLifetimeScope();

    builder.RegisterType<SurvivalContainer>().InstancePerLifetimeScope();

    builder.RegisterType<EventHub>().InstancePerLifetimeScope();

    var container = builder.Build();

    DependencyResolver.SetResolver(new AutofacDependencyResolver(container));


    GlobalHost.DependencyResolver = new SignalR.Autofac.AutofacDependencyResolver(container);

    RouteTable.Routes.MapHubs();
}
Run Code Online (Sandbox Code Playgroud)

而我得到的错误是:

[DependencyResolutionException:从请求实例的作用域中看不到具有匹配'httpRequest'的标记的作用域.这通常表示注册为每HTTP请求的组件正被SingleInstance()组件(或类似场景)重新请求.在Web集成下,始终从DependencyResolver.Current或ILifetimeScopeProvider.RequestLifetime请求依赖项,从不从容器本身请求]

堆栈跟踪:

Autofac.Core.Lifetime.MatchingScopeLifetime.FindScope(ISharingLifetimeScope mostNestedVisibleScope) +160
Autofac.Core.Resolving.InstanceLookup..ctor(IComponentRegistration registration, IResolveOperation context, ISharingLifetimeScope mostNestedVisibleScope, IEnumerable`1 parameters) +57 …
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection autofac asp.net-mvc-3 signalr

6
推荐指数
1
解决办法
2369
查看次数