|
ScriptStack 1.0.5
|
Centralized CLR interop bridge for ScriptStack. Handles reflection-based member access, method invocation, indexers, and value coercion. More...
Public Member Functions | |
| ClrBridge (IClrPolicy policy) | |
| object | GetMember (object target, string memberName) |
| void | SetMember (object target, string memberName, object scriptValue) |
| bool | TryGetIndex (object target, object scriptKey, out object value) |
| bool | TrySetIndex (object target, object scriptKey, object scriptValue) |
| object | Invoke (object target, string methodName, List< object > args) |
Private Member Functions | |
| void | EnsureTypeAllowed (Type t) |
| void | EnsureReturnAllowed (object? value, string context) |
| object | GetMemberValue (object target, string memberName) |
| void | SetMemberValue (object target, string memberName, object scriptValue) |
| object | InvokeMethod (object target, string methodName, List< object > args) |
| bool | TryGetIndexedValue (object target, object scriptKey, out object value) |
| bool | TrySetIndexedValue (object target, object scriptKey, object scriptValue) |
Static Private Member Functions | |
| static object | ClrNullToScript (object? v) |
| static object | CoerceTo (object value, Type targetType) |
| static object | ConvertScriptArrayListToClrArray (ArrayList scriptArr, Type elementType) |
| static ? Type | GetGenericInterface (Type type, Type genericDefinition) |
| static bool | TryConvertScriptArrayListToGenericCollection (ArrayList scriptArr, Type targetType, out object? collection) |
| static bool | TryConvertScriptArrayListToGenericDictionary (ArrayList scriptArr, Type targetType, out object? dict) |
| static bool | TryCoerceTo (object value, Type targetType, out object? coerced) |
Private Attributes | |
| readonly IClrPolicy | _policy |
Static Private Attributes | |
| static readonly BindingFlags | ClrMemberFlags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.IgnoreCase |
| static readonly BindingFlags | ClrInstanceMemberFlags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.IgnoreCase |
| static readonly BindingFlags | ClrStaticMemberFlags = BindingFlags.Static | BindingFlags.Public | BindingFlags.IgnoreCase | BindingFlags.FlattenHierarchy |
Centralized CLR interop bridge for ScriptStack. Handles reflection-based member access, method invocation, indexers, and value coercion.
All access is mediated by an IClrPolicy.
Definition at line 16 of file ClrBridge.cs.
| ScriptStack.Runtime.ClrBridge.ClrBridge | ( | IClrPolicy | policy | ) |
Definition at line 25 of file ClrBridge.cs.
References _policy.
|
staticprivate |
Referenced by InvokeMethod(), and TryGetIndexedValue().
|
staticprivate |
Definition at line 56 of file ClrBridge.cs.
References ConvertScriptArrayListToClrArray(), TryConvertScriptArrayListToGenericCollection(), and TryConvertScriptArrayListToGenericDictionary().
Referenced by ConvertScriptArrayListToClrArray(), SetMemberValue(), TryCoerceTo(), TryConvertScriptArrayListToGenericCollection(), and TryConvertScriptArrayListToGenericDictionary().
|
staticprivate |
Definition at line 106 of file ClrBridge.cs.
References CoerceTo().
Referenced by CoerceTo().
|
private |
Definition at line 40 of file ClrBridge.cs.
References _policy.
Referenced by GetMemberValue(), InvokeMethod(), and TryGetIndexedValue().
|
private |
Definition at line 34 of file ClrBridge.cs.
References _policy.
Referenced by GetMemberValue(), InvokeMethod(), SetMemberValue(), TryGetIndexedValue(), and TrySetIndexedValue().
|
staticprivate |
Definition at line 140 of file ClrBridge.cs.
Referenced by TryConvertScriptArrayListToGenericCollection(), and TryConvertScriptArrayListToGenericDictionary().
| object ScriptStack.Runtime.ClrBridge.GetMember | ( | object | target, |
| string | memberName ) |
|
private |
Definition at line 271 of file ClrBridge.cs.
References _policy, ClrInstanceMemberFlags, ClrStaticMemberFlags, EnsureReturnAllowed(), and EnsureTypeAllowed().
| object ScriptStack.Runtime.ClrBridge.Invoke | ( | object | target, |
| string | methodName, | ||
| List< object > | args ) |
|
private |
Definition at line 344 of file ClrBridge.cs.
References _policy, ClrInstanceMemberFlags, ClrNullToScript(), ClrStaticMemberFlags, EnsureReturnAllowed(), EnsureTypeAllowed(), and TryCoerceTo().
| void ScriptStack.Runtime.ClrBridge.SetMember | ( | object | target, |
| string | memberName, | ||
| object | scriptValue ) |
|
private |
Definition at line 307 of file ClrBridge.cs.
References _policy, ClrMemberFlags, CoerceTo(), and EnsureTypeAllowed().
|
staticprivate |
Definition at line 253 of file ClrBridge.cs.
References CoerceTo().
Referenced by InvokeMethod(), TryGetIndexedValue(), and TrySetIndexedValue().
|
staticprivate |
Definition at line 149 of file ClrBridge.cs.
References CoerceTo(), and GetGenericInterface().
Referenced by CoerceTo().
|
staticprivate |
Definition at line 208 of file ClrBridge.cs.
References CoerceTo(), and GetGenericInterface().
Referenced by CoerceTo().
| bool ScriptStack.Runtime.ClrBridge.TryGetIndex | ( | object | target, |
| object | scriptKey, | ||
| out object | value ) |
|
private |
Definition at line 466 of file ClrBridge.cs.
References _policy, ClrMemberFlags, ClrNullToScript(), EnsureReturnAllowed(), EnsureTypeAllowed(), and TryCoerceTo().
| bool ScriptStack.Runtime.ClrBridge.TrySetIndex | ( | object | target, |
| object | scriptKey, | ||
| object | scriptValue ) |
|
private |
Definition at line 546 of file ClrBridge.cs.
References _policy, ClrMemberFlags, EnsureTypeAllowed(), and TryCoerceTo().
|
private |
Definition at line 19 of file ClrBridge.cs.
Referenced by ClrBridge(), EnsureReturnAllowed(), EnsureTypeAllowed(), GetMemberValue(), InvokeMethod(), SetMemberValue(), TryGetIndexedValue(), and TrySetIndexedValue().
|
staticprivate |
Definition at line 22 of file ClrBridge.cs.
Referenced by GetMemberValue(), and InvokeMethod().
|
staticprivate |
Definition at line 21 of file ClrBridge.cs.
Referenced by SetMemberValue(), TryGetIndexedValue(), and TrySetIndexedValue().
|
staticprivate |
Definition at line 23 of file ClrBridge.cs.
Referenced by GetMemberValue(), and InvokeMethod().