/// <summary> /// Get the cached instance with schema validator prepared with loaded schemas from disk /// Create one if the first time. /// </summary> /// <param name="path"></param> /// <param name="cachekey">optional cachekey to enable different validatorsets in cache</param> /// <returns></returns> public static SchemaValidator GetSchemaValidator(string path, string cachekey = null) { SchemaValidator validator = GetSchemaValidator(path + cachekey); if (validator == null) { lock (lockObject) { validator = new SchemaValidator(path); SchemaValidator.CacheSchemaValidator(validator, cachekey); } } return(validator); }
public StmSchemaValidator() { lock (lockobject) { validator = SchemaValidator.GetSchemaValidator(cachekey); if (validator == null) { var schemaAssembly = Assembly.GetAssembly(typeof(STM.Common.Schema.Schema)); var names = schemaAssembly.GetManifestResourceNames(); names = names.OrderBy(x => x).ToArray(); validator = new SchemaValidator(schemaAssembly, names.ToList()); SchemaValidator.CacheSchemaValidator(validator, cachekey); } } }
/// <summary> /// Set a cached instance /// </summary> /// <param name="validator"></param> /// <param name="cachekey">optional cachekey to enable different validatorsets in cache</param> public static void CacheSchemaValidator(SchemaValidator validator, string cachekey = null) { CacheUtils.AddToTimerCache(cacheKey_SchemaValidator + cachekey, validator, 14400); }