private static object[] ProcessEvent(HandleExternalEventActivity activity, ActivityExecutionContext context, object msg, Type interfaceType, string operation) { IMethodMessage message = msg as IMethodMessage; if (message == null) { Exception excp = msg as Exception; if (excp != null) { throw excp; } throw new InvalidOperationException(SR.GetString(SR.Error_InvalidLocalServiceMessage)); } CorrelationService.InvalidateCorrelationToken(activity, interfaceType, operation, message.Args); IdentityContextData identityData = (IdentityContextData)message.LogicalCallContext.GetData(IdentityContextData.IdentityContext); ValidateRoles(activity, identityData.Identity); if (ProcessEventParameters(activity.ParameterBindings, message, interfaceType, operation)) { return(message.Args); } return(null); }
private void ProcessMessage(ActivityExecutionContext context, object msg, Type interfaceType, string operation) { IMethodMessage message = msg as IMethodMessage; if (message == null) { Exception exception = msg as Exception; if (exception != null) { throw exception; } throw new ArgumentNullException("msg"); } CorrelationService.InvalidateCorrelationToken(this, interfaceType, operation, message.Args); IdentityContextData data = (IdentityContextData)message.LogicalCallContext.GetData("__identitycontext__"); InboundActivityHelper.ValidateRoles(this, data.Identity); this.ProcessParameters(context, message, interfaceType, operation); base.RaiseEvent(InputReceivedEvent, this, EventArgs.Empty); }