public static string GetConceptInfo(NssConcept nssConcept) { if (!m_dicConceptRecord.TryGetValue(nssConcept, out NssConceptRecord nssConceptRecord)) { throw new NssIntegrationException($"'{nssConcept}'是未注册的{nameof(NssConcept)}"); } return(nssConceptRecord.info); }
public static string CheckConcept <T>(NssConcept nssConcept, T value) { if (!m_dicConceptRecord.TryGetValue(nssConcept, out NssConceptRecord nssConceptRecord)) { throw new NssIntegrationException($"'{nssConcept}'是未注册的{nameof(NssConcept)}"); } if (!nssConceptRecord.type.IsAssignableFrom(typeof(T))) { throw new NssIntegrationException($"'{nssConcept}'类型不匹配,需要的类型'{nssConceptRecord.type}',输入的类型'{typeof(T)}'!"); } return(((NssConceptRecord <T>)nssConceptRecord).checker(value)); }
public static string CheckConcept(NssConcept nssConcept, object value) { if (value == null) { return(null); } if (!m_dicConceptRecord.TryGetValue(nssConcept, out NssConceptRecord nssConceptRecord)) { throw new NssIntegrationException($"'{nssConcept}'是未注册的{nameof(NssConcept)}"); } if (!nssConceptRecord.type.IsAssignableFrom(value.GetType())) { throw new NssIntegrationException($"'{nssConcept}'类型不匹配,需要的类型'{nssConceptRecord.type}',输入的类型'{value.GetType()}'!"); } var checkerField = nssConceptRecord.GetType().GetField("checker", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance); var checker = checkerField.GetValue(nssConceptRecord); var ret = ((Delegate)checker).DynamicInvoke(value); return((string)ret); }
public NssConceptConfigurationAttribute(NssConcept nssConcept) : base(NssConceptHelper.GetConceptInfo(nssConcept)) { valueChecker = value => NssConceptHelper.CheckConcept(nssConcept, value); }