Skip to content

Question: Is it possible to specify the registration order? #183

Description

@blahDL

I am using Scrutor to register pipeline behaviours for MediatR which is working perfectly with the following code

builder.Services.Scan(scan => scan.FromAssemblyOf<Program>()
    .AddClasses(cls => cls.AssignableTo(typeof(IPipelineBehavior<,>)))
        .AsImplementedInterfaces()
        .WithScopedLifetime()
);

I have now introduced a pipeline behaviour that I want to be run before the others. Pipeline execution order is set by the order they are registered with the container so now I need to either specify the registration order somehow or register them all manually.

Is there a way that I can specify the registration order (by using something like an attribute on the classes) or do I have to stop using Scrutor for this and register them all manually?

Activity

  1. anreton commented on Sep 18, 2023

    @anreton

    @blahDL, +1

    @khellang, it would be very useful to describe exactly what the registration order is when calling a Scan. I couldn't find any information about this anywhere.

    How does multiple implementation of interface is registered? E.g. Class1, Class2 and Class3 implements Interface1. How this can be registered with Scrutor? How can I control the registration order?

  2. khellang commented on Sep 18, 2023

    @khellang
    Owner

    I'd love to hear what you'd expect the API to look like and how it would work? Would it order all implementations per service type or globally? Would it work with an IComparer<Type>?

  3. nasir-awan commented on Nov 6, 2024

    @nasir-awan

    Do we have this feature in Scrutor? or still we are waiting for it.

  4. khellang commented on Nov 6, 2024

    @khellang
    Owner

    The issue is still open 😁

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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