internal Context() { mImplementPtr = ConversationAPI.CreateContext(); IntPtr global = ConversationAPI.GetContextGlobalSave(ImplementPtr); if (global != IntPtr.Zero) { mGlobalSave = new Save(global); } IntPtr player = ConversationAPI.GetContextPlayerSave(ImplementPtr); if (player != IntPtr.Zero) { mPlayerSave = new Save(player); } // 长期持有自己的delegate防止被gc mFunctionHandler = new FunctionHandler(OnFunctoinCall); mProcessHandler = new FunctionHandler(OnProcessCall); mFunctionQuery = new FunctionQuery(OnFunctoinQuery); mProcessQuery = new FunctionQuery(OnProcessQuery); ConversationAPI.SetFunctionHandler(ImplementPtr, mFunctionHandler); ConversationAPI.SetProcessHandler(ImplementPtr, mProcessHandler); ConversationAPI.SetFunctionQuery(ImplementPtr, mFunctionQuery); ConversationAPI.SetProcessQuery(ImplementPtr, mProcessQuery); }