public void Load() { var interceptorNodes = section.TryGetNodes("interceptors/interceptor"); foreach (var node in interceptorNodes) { var entityAttr = node.Attributes.TryGetValue("entity"); var typeAttr = node.Attributes.TryGetValue("type"); try { if (String.IsNullOrEmpty(entityAttr)) { RegisterInterceptor((IRepositoryFrameworkInterceptor)FastActivator.Create(typeAttr)); } else { RegisterInterceptor(Type.GetType(entityAttr), (IRepositoryFrameworkInterceptor)FastActivator.Create(typeAttr)); } } catch (Exception ex) { throw new PlatformException("加载拦截器错误。entity:{0}, type:{1}。\r\n详细错误:\r\n{2} ", entityAttr, typeAttr, ex); } } }
List <Assembly> LoadAssemblies(ToolSection section, string path) { var assemblies = new List <Assembly>(); foreach (var node in section.TryGetNodes(path)) { var assemblyName = node.Attributes.TryGetValue("name"); try { var assembly = Assembly.Load(assemblyName); assemblies.Add(assembly); } catch (FileNotFoundException ex) { //忽略无法加载的程序集 } catch (Exception ex) { throw new PlatformException("无法加载程序集 " + assemblyName, ex); } } return(assemblies); }