public override void SetIndexedValue(IValue index, IValue val) { var intIndex = (int)index.AsNumber(); var newValue = COMWrapperContext.MarshalIValue(val); _array[intIndex] = newValue; }
public override object GetValue(object obj, BindingFlags invokeAttr, Binder binder, object[] index, System.Globalization.CultureInfo culture) { IRuntimeContextInstance inst = obj as IRuntimeContextInstance; if (inst == null) { throw new ArgumentException("Wrong argument type"); } IValue retVal = inst.GetPropValue(_dispId); return(COMWrapperContext.MarshalIValue(retVal)); }
public override object Invoke(object obj, BindingFlags invokeAttr, Binder binder, object[] parameters, System.Globalization.CultureInfo culture) { IRuntimeContextInstance inst = obj as IRuntimeContextInstance; if (inst == null) { throw new ArgumentException("Wrong argument type"); } IValue[] engineParameters = parameters.Select(x => COMWrapperContext.CreateIValue(x)).ToArray(); IValue retVal = null; inst.CallAsFunction(_dispId, engineParameters, out retVal); return(COMWrapperContext.MarshalIValue(retVal)); }
public void SetValue(int index, IValue value) { var newValue = COMWrapperContext.MarshalIValue(value); _array[index] = newValue; }