Ejemplo n.º 1
0
 protected LoggedServiceBase(IServiceContext context, IService service)
 {
     Log     = context.LogServiceMethod;
     Service = service;
 }
        private void ExtractArgumentsFromRemoteContext(CodeActivityContext context, RemoteDebugExecutionContext updatedContext, LogServiceMethod logServiceMethod)
        {
            logServiceMethod.Invoke(nameof(ExtractArgumentsFromRemoteContext), $"{updatedContext.Arguments.Count} Arguments");

            foreach (var argument in updatedContext.Arguments)
            {
                logServiceMethod.Invoke(nameof(ExtractArgumentsFromRemoteContext), $"argument {argument.Key}");

                var property = GetType().GetProperty(argument.Key);

                if (property == null)
                {
                    break;
                }

                if (typeof(OutArgument).IsAssignableFrom(property.PropertyType) ||
                    typeof(InOutArgument).IsAssignableFrom(property.PropertyType))
                {
                    logServiceMethod.Invoke(nameof(ExtractArgumentsFromRemoteContext), $"Argument {argument.Key} is InOutArgument or OutArgument");

                    var setMethod = property.PropertyType.GetMethod("Set", new[] { typeof(CodeActivityContext), typeof(object) });

                    logServiceMethod.Invoke(nameof(ExtractArgumentsFromRemoteContext), $"Setter {setMethod?.Name}");

                    if (setMethod != null)
                    {
                        setMethod.Invoke(property.GetValue(this), new[] { context, argument.Value });
                    }
                }
            }
        }
Ejemplo n.º 3
0
 public DefaultService(IServiceContext context)
 {
     _context = context;
     Log      = context.LogServiceMethod;
 }