| | |
| | | /// 容器 |
| | | /// </summary> |
| | | public static IContainer Instance; |
| | | public static AppDomain AppDomain; |
| | | |
| | | /// <summary> |
| | | /// 初始化容器 |
| | |
| | | #region 动态加载多个dll |
| | | string[] assemblyPattern = new[] { "Tiger.Business([.].*)*.dll" }; |
| | | |
| | | // 1. Scan for assemblies containing autofac modules in the bin folder |
| | | List<Assembly> assemblies = new List<Assembly>(); |
| | | assemblies.AddRange( |
| | | Directory.EnumerateFiles(AppDomain.CurrentDomain.BaseDirectory, "*.dll", SearchOption.AllDirectories) |
| | | .Where(filename => assemblyPattern.Any(pattern => Regex.IsMatch(filename, pattern))) |
| | | .Select(Assembly.LoadFrom) |
| | | ); |
| | | //AppDomain = AppDomain.CreateDomain("AutoFac Dll"); |
| | | //List<Assembly> assemblies = new List<Assembly>(); |
| | | //foreach (var file in Directory.EnumerateFiles(AppDomain.CurrentDomain.BaseDirectory, "*.dll", SearchOption.AllDirectories).Where(filename => assemblyPattern.Any(pattern => Regex.IsMatch(filename, pattern)))) |
| | | //{ |
| | | // var assembly = AppDomain.Load(Assembly.LoadFrom(file).GetName()); |
| | | // assemblies.Add(assembly); |
| | | //} |
| | | |
| | | // 1. Scan for assemblies containing autofac modules in the bin folder |
| | | //List<Assembly> assemblies = new List<Assembly>(); |
| | | //assemblies.AddRange( |
| | | // Directory.EnumerateFiles(AppDomain.CurrentDomain.BaseDirectory, "*.dll", SearchOption.AllDirectories) |
| | | // .Where(filename => assemblyPattern.Any(pattern => Regex.IsMatch(filename, pattern))) |
| | | // .Select(Assembly.LoadFrom) |
| | | //); |
| | | |
| | | |
| | | var assemblies = PluginManager.Load(AppDomain.CurrentDomain.BaseDirectory, "Tiger.Business([.].*)*.dll"); |
| | | foreach (var assembly in assemblies) |
| | | { |
| | | builder.RegisterAssemblyTypes(assembly).AsImplementedInterfaces(); |
| | |
| | | { |
| | | return AutoFacContainer.Instance.Resolve<T>(); |
| | | } |
| | | |
| | | public static dynamic Resolve(string typeFullName) |
| | | { |
| | | return AutoFacContainer.Instance.Resolve(System.Type.GetType(typeFullName, true)); |
| | | } |
| | | } |
| | | } |