PDA

View Full Version : Aufruf referenzierter Scripte aus Extensions nicht möglich



Elchi
25-03-2014, 18:11
Nehmen wir folgenden Code:


Public Function getString() As String {
Return "Test";
}




#UseInterface Web, Gui;

Function main() {
Var ref As New CMyScript(8795);
Var f As CDelegate = ref.GetDelegate("getString");
Var ret As String = f.Invoke();
ScriptContext.WriteAppLog(ret);
}

Function CallBack_PageBeforeRender(e As CGuiEventOnPageBeforeRender)
{
main();
}

Function Init(){
main();
//ScriptContext.EnableExtension();
//ScriptContext.RegisterEvent(EGuiEventType.PageBefo reRender, AddressOf CallBack_PageBeforeRender);
//ScriptContext.ActivateEvents();
}

Init();


Alles funktioniert einwandfrei und der Applog "Test" wird geschrieben.

Entkommentiert man jedoch die Zeilen, die die Extension aktivieren, erhält man folgende Fehlermeldung:



[NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.]
bei stne.CScriptContext.get_Current() in d:\source\arakis\dev1\projects\stne\game\Scripting \Extensions.cs:Zeile 542.
bei stne.Scripting.Types.CScript.GetScript() in d:\source\arakis\dev1\projects\stne\game\Scripting \Objects.cs:Zeile 5843.
bei stne.CImpersonationDelegate.Invoke(Object[] args) in d:\source\arakis\dev1\projects\stne\game\Scripting \Extensions.cs:Zeile 954.
bei larne.scripting.Types.CDelegate.Invoke() in d:\source\arakis\dev1\projects\shared\larne.script ing\ScriptMethods.cs:Zeile 181.

[TargetInvocationException: Ein Aufrufziel hat einen Ausnahmefehler verursacht.]
bei System.RuntimeMethodHandle._InvokeMethodFast(IRunt imeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
bei System.RuntimeMethodHandle.InvokeMethodFast(IRunti meMethodInfo method, Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
bei System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
bei System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
bei System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
bei larne.scripting.TScriptObjectMemberNative.GetValue Internal(TScriptContext Context, Object obj, Object[] Index) in d:\source\arakis\dev1\projects\shared\larne.script ing\Script.cs:Zeile 2667.
bei larne.scripting.TScriptObjectMemberNative.GetValue (TScriptContext Context, TCodeExpressionObjectMember CallExp, Object obj, Object[] Index) in d:\source\arakis\dev1\projects\shared\larne.script ing\Script.cs:Zeile 2656.
bei larne.scripting.Expressions.TCodeExpressionObjectM ember.Get(TScriptContext Context) in d:\source\arakis\dev1\projects\shared\larne.script ing\ScriptExpressions.cs:Zeile 376.
bei larne.scripting.Commands.TCodeCommandDim.Process(T ScriptContext Context) in d:\source\arakis\dev1\projects\shared\larne.script ing\ScriptCommands.cs:Zeile 150.
bei larne.scripting.TScriptContext.ExecuteInternal() in d:\source\arakis\dev1\projects\shared\larne.script ing\Script.cs:Zeile 1194.

[Exception: Das Script hat einen Laufzeitfehler verursacht. Zeile: 6, Spalte: 7, Token: 'ret', Script: '_']
bei larne.scripting.TScriptContext.ExecuteInternal() in d:\source\arakis\dev1\projects\shared\larne.script ing\Script.cs:Zeile 1209.
bei larne.scripting.TScriptContext.CallMethod(TScriptO bjectMemberCustom mem, TCodeExpressionObjectMember Caller, Object[] Args, CObject Instance) in d:\source\arakis\dev1\projects\shared\larne.script ing\Script.cs:Zeile 1015.
bei larne.scripting.TScriptContext.CallMethod(TCodeExp ressionObjectMember Caller, Object[] Args, CObject Instance) in d:\source\arakis\dev1\projects\shared\larne.script ing\Script.cs:Zeile 973.
bei larne.scripting.TScriptObjectMemberCustom.GetValue (TScriptContext Context, TCodeExpressionObjectMember CallExp, Object obj, Object[] Index) in d:\source\arakis\dev1\projects\shared\larne.script ing\Script.cs:Zeile 1852.
bei larne.scripting.Expressions.TCodeExpressionObjectM ember.Get(TScriptContext Context) in d:\source\arakis\dev1\projects\shared\larne.script ing\ScriptExpressions.cs:Zeile 376.
bei larne.scripting.Commands.TCodeCommandExpressionCal l.Process(TScriptContext Context) in d:\source\arakis\dev1\projects\shared\larne.script ing\ScriptCommands.cs:Zeile 80.
bei larne.scripting.TScriptContext.ExecuteInternal() in d:\source\arakis\dev1\projects\shared\larne.script ing\Script.cs:Zeile 1194.

[Exception: Das Script hat einen Laufzeitfehler verursacht. Zeile: 6, Spalte: 7, Token: 'ret', Script: '_']
bei larne.scripting.TScriptContext.ExecuteInternal() in d:\source\arakis\dev1\projects\shared\larne.script ing\Script.cs:Zeile 1209.
bei larne.scripting.TScriptContext.CallMethod(TScriptO bjectMemberCustom mem, TCodeExpressionObjectMember Caller, Object[] Args, CObject Instance) in d:\source\arakis\dev1\projects\shared\larne.script ing\Script.cs:Zeile 1015.
bei larne.scripting.TScriptContext.CallMethod(TScriptO bjectMemberCustom Mem, Object[] Args, CObject Instance) in d:\source\arakis\dev1\projects\shared\larne.script ing\Script.cs:Zeile 969.
bei larne.scripting.TScriptObjectMemberCustom.GetValue Internal(TScriptContext Context, Object obj, Object[] Index) in d:\source\arakis\dev1\projects\shared\larne.script ing\Script.cs:Zeile 1868.
bei larne.scripting.Types.CDelegate.Invoke(Object[] args) in d:\source\arakis\dev1\projects\shared\larne.script ing\ScriptMethods.cs:Zeile 185.
bei stne.TScriptExtensionItem.CallEvent(CGuiEvent e) in d:\source\arakis\dev1\projects\stne\game\Scripting \Extensions.cs:Zeile 245.

[Exception: Es ist ein Fehler in einer Extension aufgetreten. Extension wurde deaktiviert. Bitte wende dich an den Autor der Extension.]
bei stne.TScriptExtensionItem.CallEvent(CGuiEvent e) in d:\source\arakis\dev1\projects\stne\game\Scripting \Extensions.cs:Zeile 260.
bei stne.TScriptExtensionManagerUserItem.CallEvent(CGu iEvent e) in d:\source\arakis\dev1\projects\stne\game\Scripting \Extensions.cs:Zeile 170.
bei stne.TUserSession.CallScriptEvent(CGuiEvent e) in d:\source\arakis\dev1\projects\stne\game\Core\User Lib.cs:Zeile 6231.
bei stne.TstneGamePage.PrepareRender() in d:\source\arakis\dev1\projects\stne\game\Core\WebC ontrols.cs:Zeile 852.
bei stne.wf_Game.Page_Load(Object sender, EventArgs e) in d:\source\arakis\dev1\projects\stne\game\Game.aspx .cs:Zeile 176.
bei System.Web.UI.Control.LoadRecursive()
bei System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Assembly: stne.dll
Time: 25.03.2014 17:09:11
Server: DE3
User-ID: 25442
STNE-Version: 1.0.74.1155
Compiled at: 24.03.2014 00:32:27
Compiled from: Arakis


Da es insbesondere bei Extension sehr hilfreich ist Code zentral zu organisieren bitte ich um die Behebung dieses Problems

lg
Elchi