Example #1
0
        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);
        }