public static void AddDiverter(MarshalOption marshalOption, object marshallerInstance, string marshalMethod, List <KeyValuePair <Type, object> > inputs, SynchronizationContext syncContext = null, bool makeDefault = false) { if (marshalOption == MarshalOption.UserDefined) { throw new InvalidOperationException($"User defined marshal options must call {nameof(AddDiverter)} passing a string argument into the first parameter."); } AddDiverter(marshalOption.ToString(), marshallerInstance, marshalMethod, inputs, syncContext, makeDefault); }
public DiversionAttribute(MarshalOption option, string optionKey = null) { SelectedDiverter = option; if (option == MarshalOption.UserDefined) { SelectionKey = optionKey; MarshalInfo = Diversion.GetInfo(optionKey); } else { MarshalInfo = Diversion.GetInfo(SelectedDiverter); } }
public void AddEventHandlerRecord(MarshalOption option, int notificationId) { lock (Records) { var r = new HandlerRecord() { HandlerThreadId = Thread.CurrentThread.ManagedThreadId, MarshalOption = option, MarshalKey = option.ToString(), NotificationId = notificationId }; Records.Add(r); } }
internal static MarshalInfo GetInfo(MarshalOption option) { return(GetInfo(option.ToString())); }