小编Nie*_*ksa的帖子

无法在.NET Core 2.0中配置Autofac

我开始使用我的第一个.NET CORE 2.0项目,它将是一个webapi.到目前为止一直很好,直到我遇到试图配置Autofac的问题.我按照这里描述的说明操作.但不幸的是,我的StartUp中出现了构建错误.显然ContainerBuilder不包含定义Populate().也AutofacServiceProvider找不到类型.我在网上搜索了一段时间,试图找到2.0的正确文档.如果源的目标是1.0或2.0,它是分散的并且并不总是很清楚.不幸的是,所有选项最终都会出现构建错误,所以我认为我会坚持使用官方文档提供的实现.是否有可能Autofac不支持.NET Core 2.0中的这种启动形式.

供参考:

using Autofac;
using System;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;

namespace TEST.API
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();

            var containerBuilder = new ContainerBuilder();
            containerBuilder.RegisterModule<ServiceModule>();
            containerBuilder.Populate(services);
            var container = containerBuilder.Build();
            return new AutofacServiceProvider(container);
        }

        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            { …
Run Code Online (Sandbox Code Playgroud)

c# autofac asp.net-core-2.0

5
推荐指数
1
解决办法
4016
查看次数

ASP.NET Core 2.0 使用 Autofac 注入控制器

我正在尝试使用 Autofac 注入我的控制器。不幸的是,我无法配置 Autofac,因此“DefaultControllerActivator”不会构建我的控制器?

    public IServiceProvider ConfigureServices(IServiceCollection services)
    {
        services.AddMvc().AddControllersAsServices();
        var containerBuilder = new ContainerBuilder();
        containerBuilder.RegisterModule<ServiceModule>();
        containerBuilder.Populate(services);
        containerBuilder.RegisterType<LoginController>().PropertiesAutowired();

        ApplicationContainer = containerBuilder.Build();
        return new AutofacServiceProvider(this.ApplicationContainer);
    }

    public class ServiceModule : Module
    {
        protected override void Load(ContainerBuilder builder)
        {
            builder.RegisterModule(new DataProviderModule());
            builder.RegisterType(typeof(LoginService)).As(typeof(ILoginService)).InstancePerRequest();
        }
    }

    [Route("api/[controller]")]
    public class LoginController : Controller
    {
        private readonly ILoginService _loginService;

        public LoginController(ILoginService loginService)
        {
            _loginService = loginService;
        }
    }
Run Code Online (Sandbox Code Playgroud)

如上所示,我遵循了 Autofac 的文档。不幸的是 LoginController 不会被构造,因为它需要注入。

编辑:如果有一种不使用 Autofac 使用“模块”的方法,我会对任何建议非常感兴趣:)

提前谢谢你!

c# autofac asp.net-core-2.0

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

Fish Shell:验证字符串是否包含子字符串

目前我正在尝试验证包含路径的字符串是否包含特定字符串。

我已经尝试过 bash 比较:

  1. 如果 [ $path = $needle ]

  1. 如果 [ $path =~ $needle ]

我也尝试使用“包含”关键字。但我不确定我是否想将它与字符串一起使用..

不幸的是,这些尝试都失败了。:/

function next_dir
    set foundcwd 0
    set cwd $PWD
    set error 'There is no next directory to navigate to...'

    if [ -z $cwd ]
        echo $error
    else
        echo $cwd
        for d in ../*/
            set needle (string split "/" -- $d)[2]

            if [ $foundcwd = 1 ]
                cd $d
                break
            end

            if [ $cwd =~ $needle ]
                $foundcwd = 1
            end
        end
    end …
Run Code Online (Sandbox Code Playgroud)

string shell fish

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

标签 统计

asp.net-core-2.0 ×2

autofac ×2

c# ×2

fish ×1

shell ×1

string ×1