using System;
using System.Reflection;
using System.Linq;
namespace Aurora.Backend.Executors
{
public abstract class BaseExecutor
public BaseExecutor()
}
public ExecutorType ExecutorType { get; protected set; }
public static BaseExecutor CreateExecutor<T>(ExecutorType executorType) where T : BaseExecutor
MethodInfo method = typeof(T).GetMethod("Create");
if (method == null)
throw new InvalidOperationException("Executor must include a 'create' method.");
return method.Invoke(null, new object[] { executorType }) as BaseExecutor;
public enum ExecutorType
Server,
Client