public NpcStaticExecutionObject(Type staticNpcObject, String objectName, Object executionLock, INpcPreAndPostCalls preAndPostCall)
        {
            this.type           = staticNpcObject;
            this.objectName     = (objectName == null) ? type.Name : objectName;
            this.executionLock  = executionLock;
            this.preAndPostCall = preAndPostCall;

            throw new NotImplementedException();
            //
            // On static types, just get the methods
            //

            /*
             * if (type.IsAbstract && type.IsSealed)
             * {
             *  MethodInfo[] methods = type.GetMethods(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static);
             *  for (int i = 0; i < methods.Length; i++)
             *  {
             *      MethodInfo methodInfo = methods[i];
             *      npcMethods.Add(new NpcMethodInfo(this, methodInfo));
             *  }
             *  return;
             * }
             */
        }
 public NpcExecutionObject(Object invokeObject, String objectName, Object executionLock, INpcPreAndPostCalls preAndPostCall)
 {
     this.type           = invokeObject.GetType();
     this.invokeObject   = invokeObject;
     this.objectName     = (objectName == null) ? type.Name : objectName;
     this.executionLock  = executionLock;
     this.preAndPostCall = preAndPostCall;
 }