static PersistenceIOParticipantExtensions() { #pragma warning disable IDE0007 // Use implicit type (https://github.com/dotnet/roslyn/issues/766) ParameterExpression instance = Expression.Parameter(typeof(System.Activities.Persistence.PersistenceIOParticipant), "this"); ParameterExpression readWriteValues = Expression.Parameter(typeof(IDictionary <XName, object>), nameof(readWriteValues)); ParameterExpression writeOnlyValues = Expression.Parameter(typeof(IDictionary <XName, object>), nameof(writeOnlyValues)); ParameterExpression timeout = Expression.Parameter(typeof(TimeSpan), nameof(timeout)); ParameterExpression callback = Expression.Parameter(typeof(AsyncCallback), nameof(callback)); ParameterExpression state = Expression.Parameter(typeof(object), nameof(state)); ParameterExpression result = Expression.Parameter(typeof(IAsyncResult), nameof(result)); MethodInfo method; #pragma warning restore IDE0007 // Use implicit type method = typeof(System.Activities.Persistence.PersistenceIOParticipant).GetMethod( PersistenceParticipantExtensions.IPersistencePipelineModuleFullName + nameof(BeginOnSave), BindingFlags.Instance | BindingFlags.NonPublic); beginOnSave = Expression.Lambda <BeginOnSaveDelegate>( Expression.Call(instance, method, readWriteValues, writeOnlyValues, timeout, callback, state), true, instance, readWriteValues, writeOnlyValues, timeout, callback, state).Compile(); method = typeof(System.Activities.Persistence.PersistenceIOParticipant).GetMethod( PersistenceParticipantExtensions.IPersistencePipelineModuleFullName + nameof(EndOnSave), BindingFlags.Instance | BindingFlags.NonPublic); endOnSave = Expression.Lambda <EndOnSaveDelegate>( Expression.Call(instance, method, result), true, instance, result).Compile(); method = typeof(System.Activities.Persistence.PersistenceIOParticipant).GetMethod( PersistenceParticipantExtensions.IPersistencePipelineModuleFullName + nameof(BeginOnLoad), BindingFlags.Instance | BindingFlags.NonPublic); beginOnLoad = Expression.Lambda <BeginOnLoadDelegate>( Expression.Call(instance, method, readWriteValues, timeout, callback, state), true, instance, readWriteValues, timeout, callback, state).Compile(); method = typeof(System.Activities.Persistence.PersistenceIOParticipant).GetMethod( PersistenceParticipantExtensions.IPersistencePipelineModuleFullName + nameof(EndOnLoad), BindingFlags.Instance | BindingFlags.NonPublic); endOnLoad = Expression.Lambda <EndOnLoadDelegate>( Expression.Call(instance, method, result), true, instance, result).Compile(); method = typeof(System.Activities.Persistence.PersistenceIOParticipant).GetMethod( PersistenceParticipantExtensions.IPersistencePipelineModuleFullName + nameof(Abort), BindingFlags.Instance | BindingFlags.NonPublic); abort = Expression.Lambda <AbortDelegate>( Expression.Call(instance, method), true, instance).Compile(); }
static PersistenceIOParticipantExtensions() { ParameterExpression instance = Expression.Parameter(typeof(System.Activities.Persistence.PersistenceIOParticipant), "this"); ParameterExpression readWriteValues = Expression.Parameter(typeof(IDictionary<XName, object>), nameof(readWriteValues)); ParameterExpression writeOnlyValues = Expression.Parameter(typeof(IDictionary<XName, object>), nameof(writeOnlyValues)); ParameterExpression timeout = Expression.Parameter(typeof(TimeSpan), nameof(timeout)); ParameterExpression callback = Expression.Parameter(typeof(AsyncCallback), nameof(callback)); ParameterExpression state = Expression.Parameter(typeof(object), nameof(state)); ParameterExpression result = Expression.Parameter(typeof(IAsyncResult), nameof(result)); MethodInfo method; method = typeof(System.Activities.Persistence.PersistenceIOParticipant).GetMethod( PersistenceParticipantExtensions.IPersistencePipelineModuleFullName + nameof(BeginOnSave), BindingFlags.Instance | BindingFlags.NonPublic); beginOnSave = Expression.Lambda<BeginOnSaveDelegate>( Expression.Call(instance, method, readWriteValues, writeOnlyValues, timeout, callback, state), true, instance, readWriteValues, writeOnlyValues, timeout, callback, state).Compile(); method = typeof(System.Activities.Persistence.PersistenceIOParticipant).GetMethod( PersistenceParticipantExtensions.IPersistencePipelineModuleFullName + nameof(EndOnSave), BindingFlags.Instance | BindingFlags.NonPublic); endOnSave = Expression.Lambda<EndOnSaveDelegate>( Expression.Call(instance, method, result), true, instance, result).Compile(); method = typeof(System.Activities.Persistence.PersistenceIOParticipant).GetMethod( PersistenceParticipantExtensions.IPersistencePipelineModuleFullName + nameof(BeginOnLoad), BindingFlags.Instance | BindingFlags.NonPublic); beginOnLoad = Expression.Lambda<BeginOnLoadDelegate>( Expression.Call(instance, method, readWriteValues, timeout, callback, state), true, instance, readWriteValues, timeout, callback, state).Compile(); method = typeof(System.Activities.Persistence.PersistenceIOParticipant).GetMethod( PersistenceParticipantExtensions.IPersistencePipelineModuleFullName + nameof(EndOnLoad), BindingFlags.Instance | BindingFlags.NonPublic); endOnLoad = Expression.Lambda<EndOnLoadDelegate>( Expression.Call(instance, method, result), true, instance, result).Compile(); method = typeof(System.Activities.Persistence.PersistenceIOParticipant).GetMethod( PersistenceParticipantExtensions.IPersistencePipelineModuleFullName + nameof(Abort), BindingFlags.Instance | BindingFlags.NonPublic); abort = Expression.Lambda<AbortDelegate>( Expression.Call(instance, method), true, instance).Compile(); }