public AddinConfigureEntityKey(string classFullName, string methodName, EnumInterceptorType type) { _classFullName = classFullName; _methodName = methodName; _type = type; }
/// <summary> /// 根据调用信息获取注入信息 /// </summary> /// <param name="methodName"></param> /// <param name="args"></param> /// <param name="target"></param> /// <param name="type"></param> /// <returns></returns> public static MethodAroundBizModel GetPluginConfigure(string methodName, object[] args, object target, EnumInterceptorType type) { AddinConfigureEntityKey entityKey = new AddinConfigureEntityKey (target.ToString(), methodName, type); //取不到配置信息 var entitys = AddinConfigure.GetPluginConfigure(entityKey); if (entitys.Count == 0) { return(null); } //如果只有一个则直接返回 if (entitys.Count == 1) { return(entitys[0]); } foreach (var entity in entitys) { //如果判断 var service = AddinCache.GetService(entity.MstModel.TargetServiceId); if (service == null) { LogHelper <AddinServiceModel> .Info("In AddinConfigure GetPluginConfigure method 通过addin_method_m中的servicePHid未能取得对应的service"); return(null); } string matchCondition = service.MatchCondition; //如果不存在条件则直接返回 if (string.IsNullOrEmpty(matchCondition)) { continue; } string[] eles = matchCondition.Split(new char[] { ':' }); if (eles.Length != 2) { LogHelper <AddinServiceModel> .Info("In AddinConfigure GetPluginConfigure method 条件定义出错" + matchCondition); continue; } int index = -1; if (!int.TryParse(eles[0].Trim(), out index)) { LogHelper <AddinServiceModel> .Info("In AddinConfigure GetPluginConfigure method 条件定义出错" + matchCondition); continue; } if (index < 0 || index > args.Length) { LogHelper <AddinServiceModel> .Info("In AddinConfigure GetPluginConfigure method 条件定义出错" + matchCondition); continue; } if (args[index] == null) { LogHelper <AddinServiceModel> .Info(string.Format("In AddinConfigure GetPluginConfigure args{0} is null", index)); continue; } if (!args[index].ToString().Equals(eles[1], StringComparison.OrdinalIgnoreCase)) { LogHelper <AddinServiceModel> .Info(string.Format("In AddinConfigure GetPluginConfigure args{0} is {1},MatchCondition value {2}", index, args[index].ToString(), eles[1])); continue; } return(entity); } return(null); }