mirror of
https://github.com/dotnetcore/Util.git
synced 2026-10-29 03:26:31 +08:00
54 lines
2.3 KiB
C#
54 lines
2.3 KiB
C#
using Autofac;
|
|
using Util.Datas.Dapper;
|
|
using Util.Datas.Dapper.SqlServer;
|
|
using Util.Datas.Sql;
|
|
using Util.Datas.Sql.Matedatas;
|
|
using Util.Datas.Sql.Queries;
|
|
using Util.Datas.Tests.Commons.Domains.Repositories;
|
|
using Util.Datas.Tests.Ef.SqlServer.Repositories;
|
|
using Util.Datas.Tests.Ef.SqlServer.Stores;
|
|
using Util.Datas.Tests.Ef.SqlServer.UnitOfWorks;
|
|
using Util.Datas.Transactions;
|
|
using Util.Datas.UnitOfWorks;
|
|
using Util.Dependency;
|
|
using Util.Sessions;
|
|
|
|
namespace Util.Datas.Tests.Commons.Datas.SqlServer.Configs {
|
|
/// <summary>
|
|
/// 依赖注入配置
|
|
/// </summary>
|
|
public class IocConfig : ConfigBase {
|
|
/// <summary>
|
|
/// 加载配置
|
|
/// </summary>
|
|
protected override void Load( ContainerBuilder builder ) {
|
|
LoadInfrastructure( builder );
|
|
LoadRepositories( builder );
|
|
}
|
|
|
|
/// <summary>
|
|
/// 加载基础设施
|
|
/// </summary>
|
|
private void LoadInfrastructure( ContainerBuilder builder ) {
|
|
builder.AddSingleton<ISession>( new Session( AppConfig.UserId ) );
|
|
builder.AddScoped<IUnitOfWorkManager, UnitOfWorkManager>();
|
|
builder.AddScoped<ITransactionActionManager, TransactionActionManager>();
|
|
builder.RegisterType<SqlServerUnitOfWork>().AsSelf().InstancePerLifetimeScope().PropertiesAutowired();
|
|
builder.Register( t => t.Resolve<SqlServerUnitOfWork>() ).As<ISqlServerUnitOfWork>().InstancePerLifetimeScope().PropertiesAutowired();
|
|
builder.Register( t => t.Resolve<SqlServerUnitOfWork>() ).As<IDatabase>().InstancePerLifetimeScope().PropertiesAutowired();
|
|
builder.Register( t => t.Resolve<SqlServerUnitOfWork>() ).As<IEntityMatedata>().InstancePerLifetimeScope().PropertiesAutowired();
|
|
builder.AddScoped<ISqlQuery, SqlQuery>();
|
|
builder.AddScoped<ISqlBuilder, SqlServerBuilder>();
|
|
builder.AddScoped<IProductPoStore, ProductPoStore>();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 加载仓储
|
|
/// </summary>
|
|
private void LoadRepositories( ContainerBuilder builder ) {
|
|
builder.AddScoped<ICustomerRepository, CustomerRepository>();
|
|
builder.AddScoped<IOrderRepository, OrderRepository>();
|
|
builder.AddScoped<IProductRepository, ProductRepository>();
|
|
}
|
|
}
|
|
} |