Skip to content

Can not invoke InvokeRemoteAsync #5

@flier268

Description

@flier268

This code not work

public class UpdateDeviceRequest : IRequest<bool>, IRemoteRequest
{
    public string IP { get; set; }
    public string Name { get; set; }
    public string Model { get; set; }

    public IEnumerable<string> SpanRoles => ["public-api"];
}

 services.AddMediatR(cfg => cfg.RegisterServicesFromAssemblyContaining<Program>());
services.AddRemoteMediatR<IGrpcMediator, GrpcMediator>("public-api", "grpc", remoteBuilder =>
{
    foreach (var section in config.GetRequiredSection("grpc").GetChildren())
    {
        remoteBuilder.AddGrpcStrategy(section.Key, client => client.Address = new Uri(section.Value!));
    }
});

But this code work

  services.AddMediatR(cfg => cfg.RegisterServicesFromAssemblyContaining<Program>());
  services.AddRemoteMediatR<IGrpcMediator, GrpcMediator>("public-api", "grpc", remoteBuilder =>
  {
      foreach (var section in config.GetRequiredSection("grpc").GetChildren())
      {
          remoteBuilder.AddGrpcStrategy(section.Key, client => client.Address = new Uri(section.Value!));
      }
  });
  // Add some garbage rule in same protocalName
  services.AddRemoteMediatR<IGrpcMediator, GrpcMediator>("gg", "grpc", remoteBuilder =>
  {
  });

If doesn't add garbage, options.Get(request.ProtocolName) will get public-api
and this line will remove public-api from roles

var excepted = roles.Except(nextSpans);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions