AutoFac在非Web项目中使用
添加类
public class AutofacBuilder { private static IContainer _container; public static void init() { ContainerBuilder builder = new ContainerBuilder(); //配置接口依赖 //builder.RegisterType().As //EF依赖注入 builder.RegisterType(); ().As //这一句可以不要,因为下面已经把当前程序集下的类注入了ico容器 //注册当前程序集的所有类成员 //builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly()).AsImplementedInterfaces().AsSelf();();
//builder.RegisterType
//builder.RegisterType
_container = builder.Build(); //只有在Build之后,才能调用GetFromFac } public static T GetFromFac() { return _container.Resolve (); }
public static T GetFromFac
{
return _container.ResolveNamed
}
}
(form)在项目入口使用:
static class Program { ////// 应用程序的主入口点。 /// [STAThread] static void Main() { AutofacBuilder.init(); //使用 Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } }
静态全局使用:
var srv1 = AutofacBuilder.GetFromFac();