Table of Contents

Class ValueBindingHandle

Namespace
RDCore.SDK.Model.Values.Bindings
Assembly
RDCore.SDK.dll

Represents a handle to an internally addressed, writable IRuntimeValue.

public record ValueBindingHandle : IKnowledgeBinding, IBindingHandle, IEquatable<ValueBindingHandle>
Inheritance
ValueBindingHandle
Implements
Inherited Members
Extension Methods

Constructors

ValueBindingHandle(IRuntimeValue)

public ValueBindingHandle(IRuntimeValue value)

Parameters

value IRuntimeValue

Properties

BindingCapabilities

Indicates the valid members of this binding.

public BindingCapabilities BindingCapabilities { get; }

Property Value

BindingCapabilities

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

bool

Value

The bound runtime value, read without a resolver.

public IRuntimeValue Value { get; }

Property Value

IRuntimeValue

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

resolver ISymbolResolver

Returns

IRuntimeValue

Remarks

👉 Verify that the binding supports GetValue.

Exceptions

NotSupportedException

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

resolver ISymbolResolver
args IRuntimeValue[]

Returns

IRuntimeValue

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

resolver ISymbolResolver
value IRuntimeValue

Remarks

Stores a value 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

value IRuntimeValue

The new value, or the value assumed in place of one that is not known.

isKnown bool

Whether value is known.

Remarks

A String stored where it already is, s = s, is stored as a copy: a String assigned to a variable is one of its own, whose characters are elsewhere than the ones it held (MS-VBA makes another BSTR for any assignment, recorded in Excel), and what holds a String is told from what holds another by the very value.