标签:assign 自动 sync new service returns 构造 ssi oba
1 Asp.net MVC 项目使用AutoFace基础
//创建容器
var builder = new ContainerBuilder();
//注册程序集所有控制器Controllers PropertiesAutowired 控制器属性自动注入
builder.RegisterControllers(typeof(MvcApplication).Assembly).PropertiesAutowired();
// 获取所有相关类库的程序集
Assembly[] assemblies = new Assembly[] {Assembly.Load("TaskAsync.Service") };
builder.RegisterAssemblyTypes(assemblies).Where(t => !t.IsAbstract).AsImplementedInterfaces()
.PropertiesAutowired();
var container = builder.Build();
//注册系统级别的 DependencyResolver,这样当 MVC 框架创建 Controller 等对象的时候都是管 Autofac 要对象
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
2Asp.net.WebApi项目使用AutoFac基础
新建空类IDependency 所有接口类继承 IDependency
public interface IDependency
{
}
/// <summary>
/// token IService
/// </summary>
public interface ITokenService:IDependency
{
/// <summary>
/// 保存Token
/// </summary>
/// <param name="model">输入数据</param>
/// <returns></returns>
ReturnValueModel<object> Save(TokenSaveModel model);
/// <summary>
/// 删除Token
/// </summary>
/// <param name="token"></param>
/// <returns></returns>
bool Delete(string token);
}
var serviceName = ConfigurationManager.AppSettings["service"];
var builder = new ContainerBuilder();
var baseType = typeof(IDependency);
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
builder.RegisterAssemblyTypes(Assembly.Load(serviceName))
.Where(item => baseType.IsAssignableFrom(item))
.AsImplementedInterfaces()
.InstancePerLifetimeScope();
//注册系统级别的 DependencyResolver
GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container);
控制器通过构造函数实现注解
public class TokenController : ApiController
{
/// <summary>
/// token服务
/// </summary>
private ITokenService _iTokenService;
public TokenController(ITokenService iTokenService)
{
_iTokenService = iTokenService;
}
}
Asp.net MVC 和Asp.net.WebApi项目使用AutoFac基础
标签:assign 自动 sync new service returns 构造 ssi oba
原文地址:https://www.cnblogs.com/xinghai1/p/12882855.html