internal static IList <KeyValuePair <string, object> > GetDynamicDataMembers(object value, IEnumerable <string> names) { Requires.NotNull(value, nameof(value)); Requires.Condition(IsComObject(value), nameof(value)); return(ComObject.ObjectToComObject(value).GetMembers(names)); }
/// <summary> /// Gets the member names of the data-like members associated with the object. /// This function can operate only with objects for which <see cref="IsComObject"/> returns true. /// </summary> /// <param name="value">The object for which member names are requested.</param> /// <returns>The collection of member names.</returns> internal static IList <string> GetDynamicDataMemberNames(object value) { Requires.NotNull(value, nameof(value)); Requires.Condition(IsComObject(value), nameof(value)); return(ComObject.ObjectToComObject(value).GetMemberNames(true)); }
private static void EmitLoadArg(ILGenerator il, int index) { Requires.Condition(index >= 0, nameof(index)); switch (index) { case 0: il.Emit(OpCodes.Ldarg_0); break; case 1: il.Emit(OpCodes.Ldarg_1); break; case 2: il.Emit(OpCodes.Ldarg_2); break; case 3: il.Emit(OpCodes.Ldarg_3); break; default: if (index <= byte.MaxValue) { il.Emit(OpCodes.Ldarg_S, (byte)index); } else { il.Emit(OpCodes.Ldarg, index); } break; } }
private static void EmitLoadArg(ILGenerator il, int index) { Requires.Condition(index >= 0, nameof(index)); il.Emit(OpCodes.Ldarg, index); }