asp.net core和depenency注入示例将poco类作为返回类型

时间:2018-06-10 00:37:13

标签: asp.net-core dependency-injection

从这里的文档查看DI部分 https://docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-2.1

因此,使用下面的示例,如果在我的Repository中,我想返回某种POCO对象。那不是必须在configureservices中注册吗?

using System.Collections.Generic;
using DependencyInjectionSample.Models;

    namespace DependencyInjectionSample.Interfaces
    {
        public interface ICharacterRepository
        {
            IEnumerable<Character> ListAll();
            void Add(Character character);
        }
    }

    using System.Collections.Generic;
    using System.Linq;
    using DependencyInjectionSample.Interfaces;

    namespace DependencyInjectionSample.Models
    {
        public class CharacterRepository : ICharacterRepository
        {
            private readonly ApplicationDbContext _dbContext;

            public CharacterRepository(ApplicationDbContext dbContext)
            {
                _dbContext = dbContext;
            }

            public IEnumerable<Character> ListAll()
            {
                return _dbContext.Characters.AsEnumerable();
            }

            public void Add(Character character)
            {
                _dbContext.Characters.Add(character);
                _dbContext.SaveChanges();
            }
        }
    }


    public void ConfigureServices(IServiceCollection services)
    {
        services.AddDbContext<ApplicationDbContext>(options =>
            options.UseInMemoryDatabase()
        );

        // Add framework services.
        services.AddMvc();

        // Register application services.
        services.AddScoped<ICharacterRepository, CharacterRepository>();
        services.AddTransient<IOperationTransient, Operation>();
        services.AddScoped<IOperationScoped, Operation>();
        services.AddSingleton<IOperationSingleton, Operation>();
        services.AddSingleton<IOperationSingletonInstance>(new Operation(Guid.Empty));
        services.AddTransient<OperationService, OperationService>();
    }

0 个答案:

没有答案