本文整理匯總了C#中Mono.Debugger.Frontend.ScriptingContext.RuntimeInvoke方法的典型用法代碼示例。如果您正苦於以下問題:C# ScriptingContext.RuntimeInvoke方法的具體用法?C# ScriptingContext.RuntimeInvoke怎麽用?C# ScriptingContext.RuntimeInvoke使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Mono.Debugger.Frontend.ScriptingContext
的用法示例。
在下文中一共展示了ScriptingContext.RuntimeInvoke方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: GetProperty
protected TargetObject GetProperty(ScriptingContext context,
TargetPropertyInfo prop)
{
RuntimeInvokeFlags flags = context.GetRuntimeInvokeFlags ();
RuntimeInvokeResult result = context.RuntimeInvoke (
context.CurrentThread, prop.Getter, InstanceObject,
new TargetObject [0], flags);
if (result.ExceptionMessage != null)
throw new ScriptingException (
"Invocation of `{0}' raised an exception: {1}",
Name, result.ExceptionMessage);
return result.ReturnObject;
}
示例2: SetProperty
protected void SetProperty(ScriptingContext context, TargetPropertyInfo prop,
TargetObject obj)
{
ResolveClass (context.CurrentThread);
if (prop.Setter == null)
throw new ScriptingException ("Property `{0}' has no setter.", Name);
RuntimeInvokeFlags flags = context.GetRuntimeInvokeFlags ();
RuntimeInvokeResult result = context.RuntimeInvoke (
context.CurrentThread, prop.Setter, InstanceObject,
new TargetObject [] { obj }, flags);
if (result.ExceptionMessage != null)
throw new ScriptingException (
"Invocation of `{0}' raised an exception: {1}",
Name, result.ExceptionMessage);
}
示例3: DoInvoke
protected TargetObject DoInvoke(ScriptingContext context, bool debug)
{
TargetObject[] args = new TargetObject [arguments.Length];
for (int i = 0; i < arguments.Length; i++)
args [i] = arguments [i].EvaluateObject (context);
TargetMethodSignature sig = method.GetSignature (context.CurrentThread);
TargetObject[] objs = new TargetObject [args.Length];
for (int i = 0; i < args.Length; i++) {
objs [i] = Convert.ImplicitConversionRequired (
context, args [i], sig.ParameterTypes [i]);
}
TargetStructObject instance = method_expr.InstanceObject;
if (!method.IsStatic && !method.IsConstructor && (instance == null))
throw new ScriptingException (
"Cannot invoke instance method `{0}' with a type reference.",
method.FullName);
try {
Thread thread = context.CurrentThread;
RuntimeInvokeResult result;
RuntimeInvokeFlags flags = context.GetRuntimeInvokeFlags ();
if (debug)
flags |= RuntimeInvokeFlags.BreakOnEntry | RuntimeInvokeFlags.SendEventOnCompletion |
RuntimeInvokeFlags.NestedBreakStates;
result = context.RuntimeInvoke (thread, method, instance, objs, flags);
if (result == null)
throw new ScriptingException (
"Invocation of `{0}' aborted abnormally.", Name);
if (result.ExceptionMessage != null)
throw new InvocationException (Name, result.ExceptionMessage, result.ReturnObject);
return result.ReturnObject;
} catch (TargetException ex) {
throw new ScriptingException (
"Invocation of `{0}' raised an exception: {1}", Name, ex.Message);
} catch (EvaluationTimeoutException ex) {
throw new ScriptingException ("Invocation of `{0}' timed out.", Name);
}
}