<PackageReference Include="Castle.Windsor" Version="2.5.3" />

ServiceDescriptor

public class ServiceDescriptor
Describes how to select a types service.
public sealed delegate ServiceSelector : MulticastDelegate

Uses all interfaces implemented by the type (or its base types) as well as their base interfaces.

Uses the base type matched on.

Uses all interfaces that have names matched by implementation type name. Matches Foo to IFoo, SuperFooExtended to IFoo and IFooExtended etc

Uses the first interface of a type. This method has non-deterministic behavior when type implements more than one interface!

Uses implements to lookup the sub interface. For example: if you have IService and IProductService : ISomeInterface, IService, ISomeOtherInterface. When you call FromInterface(typeof(IService)) then IProductService will be used. Useful when you want to register _all_ your services and but not want to specify all of them.

Uses base type to lookup the sub interface.

Assigns a custom service selection strategy.

Assigns the supplied service types.

Uses the type itself.