return;
}
// determine currently supported configuration keys via reflection
List<string> supportedKeys = new List<string>();
List<FieldInfo> fields = new List<FieldInfo>(GetType().GetFields(BindingFlags.Static | BindingFlags.Public |
BindingFlags.FlattenHierarchy));
// choose constant string fields
fields = fields.FindAll(field => field.FieldType == typeof (string));
// read value from each field
foreach (FieldInfo field in fields)
{
string value = (string) field.GetValue(null);
if (value != null && value.StartsWith(ConfigurationKeyPrefix) && value != ConfigurationKeyPrefix)
{
supportedKeys.Add(value);
}
}
// now check against allowed
foreach (string configurationKey in cfg.UnderlyingProperties.AllKeys)
{
if (!configurationKey.StartsWith(ConfigurationKeyPrefix) || configurationKey.StartsWith(ConfigurationKeyPrefixServer))
{
// don't bother if truly unknown property
continue;
}
bool isMatch = false;
foreach (string supportedKey in supportedKeys)
{
if (configurationKey.StartsWith(supportedKey, StringComparison.InvariantCulture))
{
isMatch = true;
break;
}
}
if (!isMatch)
{
throw new SchedulerConfigException("Unknown configuration property '" + configurationKey + "'");
}
}
}
三三.Quartz.NET的基本应用:的基本应用:
下面提供一些较为通用的任务处理代码:
1.任务处理帮助类:
/// <summary>
/// 任务处理帮助类
/// </summary>
public class QuartzHelper
{
public QuartzHelper() { }
public QuartzHelper(string quartzServer, string quartzPort)
{
Server = quartzServer;
Port = quartzPort;
}
/// <summary>
/// 锁对象
/// </summary>
private static readonly object Obj = new object();