StephaneLenclud@210: // StephaneLenclud@210: StephaneLenclud@210: StephaneLenclud@210: using System; Stephane@212: using System.Collections.Generic; StephaneLenclud@210: using System.Runtime.Serialization; StephaneLenclud@210: using System.Threading; StephaneLenclud@210: StephaneLenclud@210: namespace SharpLib.Ear StephaneLenclud@210: { StephaneLenclud@210: [DataContract] Stephane@212: [KnownType("DerivedTypes")] StephaneLenclud@210: public abstract class Action: IComparable StephaneLenclud@210: { StephaneLenclud@210: public abstract void Execute(); StephaneLenclud@210: StephaneLenclud@211: public string Name { StephaneLenclud@211: //Get the name of this object action attribute StephaneLenclud@211: get { return Utils.Reflection.GetAttribute(GetType()).Name; } StephaneLenclud@211: private set { } StephaneLenclud@211: } StephaneLenclud@211: StephaneLenclud@210: public int CompareTo(object obj) StephaneLenclud@210: { StephaneLenclud@210: //Sort by action name StephaneLenclud@210: return Utils.Reflection.GetAttribute(GetType()).Name.CompareTo(obj.GetType()); StephaneLenclud@210: } Stephane@212: Stephane@212: private static IEnumerable DerivedTypes() Stephane@212: { Stephane@212: return SharpLib.Utils.Reflection.GetDerivedTypes(); Stephane@212: } Stephane@212: StephaneLenclud@210: } StephaneLenclud@210: StephaneLenclud@210: StephaneLenclud@210: }