using Autofac;
using Eson.IDao.SqlSugarNew;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
public class BaseContainerBo
{
private static IContainer _IContainer;
private static IContainer IContainer
{
get
{
if (_IContainer != null) return _IContainer;
var baseType = typeof(IBaseDao);
var _ContainerBuilder = new ContainerBuilder();
string path = "";
var environmentPath = Path.Combine(Environment.CurrentDirectory, "1");
var currentDomainPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "1");
if (environmentPath.Equals(currentDomainPath))//Windows应用程序则相等
{
path = AppDomain.CurrentDomain.BaseDirectory;
}
else
{
path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory + "bin");
}
Assembly[] assemblies = Directory.GetFiles(path, "*.dll").Select(Assembly.LoadFrom).ToArray();
//注册所有IDependency
_ContainerBuilder.RegisterAssemblyTypes(assemblies)
.Where(t => baseType.IsAssignableFrom(t) && !t.IsAbstract)
.AsImplementedInterfaces()
.PropertiesAutowired();
_IContainer = _ContainerBuilder.Build();
return _IContainer;
}
}
protected M GetInstance<M>()
where M : IBaseDao
{
var manager = IContainer.Resolve<M>();
return manager;
}
}
Autofac注册程序集
猜你喜欢
转载自blog.csdn.net/qq_25118431/article/details/83480169
今日推荐
周排行