public ZingerExternalScheduler()
{
var zingerPath = new Uri(
System.IO.Path.GetDirectoryName(
System.Reflection.Assembly.GetExecutingAssembly().CodeBase)
).LocalPath;
var schedDllPath = zingerPath + "\\" + "RunToCompletionDelayingScheduler.dll";
if (!File.Exists(schedDllPath))
{
ZingerUtilities.PrintErrorMessage(String.Format("Scheduler file {0} not found", schedDllPath));
ZingerConfiguration.DoDelayBounding = false;
return;
}
var schedAssembly = Assembly.LoadFrom(schedDllPath);
// get class name
string schedClassName = schedAssembly.GetTypes().Where(t => (t.BaseType.Name == "ZingerDelayingScheduler")).First().FullName;
var schedStateClassName = schedAssembly.GetTypes().Where(t => (t.BaseType.Name == "ZingerSchedulerState")).First().FullName;
var schedClassType = schedAssembly.GetType(schedClassName);
var schedStateClassType = schedAssembly.GetType(schedStateClassName);
zDelaySched = Activator.CreateInstance(schedClassType) as ZingerDelayingScheduler;
zSchedState = Activator.CreateInstance(schedStateClassType) as ZingerSchedulerState;
}