Class ReferenceBindingHandle
Represents a handle to an internally addressed, writable reference to a VBTypedValue.
public record ReferenceBindingHandle : IKnowledgeBinding, IBindingHandle, IEquatable<ReferenceBindingHandle>
- Inheritance
-
ReferenceBindingHandle
- Implements
- Inherited Members
- Extension Methods
Constructors
ReferenceBindingHandle(VBRuntimeReference)
public ReferenceBindingHandle(VBRuntimeReference value)
Parameters
valueVBRuntimeReference
Properties
BindingCapabilities
Indicates the valid members of this binding.
public BindingCapabilities BindingCapabilities { get; }
Property Value
IsKnown
Whether the value held is known. When it is not, the value held is the one its type assumes.
public bool IsKnown { get; }
Property Value
Value
The bound runtime value, read without a resolver.
public IRuntimeValue Value { get; }
Property Value
Remarks
👉 A direct read for the common literal/value cases. Handles that resolve a value lazily or via a reference still expose GetValue(ISymbolResolver).
Exceptions
- NotSupportedException
The binding has no readable value.
Methods
Forget()
Makes the value held not known, keeping it as the value assumed in its place.
public void Forget()
GetValue(ISymbolResolver)
Gets the value associated to this handle, resolving through resolver when
the binding is not self-contained.
public IRuntimeValue GetValue(ISymbolResolver resolver)
Parameters
resolverISymbolResolver
Returns
Remarks
👉 Verify that the binding supports GetValue.
Exceptions
Invoke(ISymbolResolver, IRuntimeValue[])
Invokes the callable entity associated to this handle, and returns the runtime value it yields - an HRESULT (S_OK), for one that yields no value.
public IRuntimeValue Invoke(ISymbolResolver resolver, IRuntimeValue[] args)
Parameters
resolverISymbolResolverargsIRuntimeValue[]
Returns
Remarks
👉 Verify that the binding supports Invoke.
A handle to code that runs on a call stack does not push the frame itself: it hands the call to an IProcedureInvoker.
Exceptions
- NotSupportedException
The binding does not support Invoke.
- VBRuntimeErrorException
A run-time error was raised by the invoked entity and nothing handled it.
SetValue(ISymbolResolver, IRuntimeValue)
public void SetValue(ISymbolResolver resolver, IRuntimeValue value)
Parameters
resolverISymbolResolvervalueIRuntimeValue
Remarks
Stores a reference that is known: a write that may be of one that is not says so with Store(IRuntimeValue, bool).
Store(IRuntimeValue, bool)
Replaces the value held, and says whether the new value is known.
public void Store(IRuntimeValue value, bool isKnown)
Parameters
valueIRuntimeValueThe new value, or the value assumed in place of one that is not known.
isKnownboolWhether
valueis known.