Example #1
0
        /// <summary>
        /// 转换业务服务包
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        public static IServicePackage Convert2Package(ServicePackageInfo info)
        {
            ServicePackage package       = new ServicePackage();
            Assembly       impleAssembly = getImpleAssembly(info);
            Assembly       infAssembly   = getInfAssembly(info);

            if (impleAssembly == null || infAssembly == null)
            {
                return(null);
            }

            foreach (ServiceInfo service in info.Services)
            {
                Type servicetype = infAssembly.GetType(service.ServiceTypeName);
                if (servicetype != null)
                {
                    Type t = Type.GetType(servicetype.AssemblyQualifiedName);
                    if (t != null)
                    {
                        servicetype = t;
                    }
                }
                Type impletype = impleAssembly.GetType(service.ImpleTypeName);
                if (servicetype != null && impletype != null)
                {
                    ServiceDesc desc = new ServiceDesc(servicetype, service.Key, impletype, service.IsDefault);
                    package.AddService(desc);
                    if (service.IsDefault)
                    {
                        package.SetDefaultService(new ServiceKey(desc));
                    }
                }
            }
            return(package);
        }
Example #2
0
        /// <summary>
        /// 添加服务
        /// </summary>
        /// <param name="desc"></param>
        public void AddService(ServiceDesc desc)
        {
            ConfigValidator.ValidateServiceDesc(desc);

            ServiceKey servicekey = new ServiceKey(desc);

            serviceDic.Add(servicekey, desc);
        }
Example #3
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="desc">服务描述</param>
 public ServiceKey(ServiceDesc desc)
 {
     type = desc.ServiceType;
     id   = desc.Key;
 }