public override void RegisterServices(IServiceRegister register)
 {
     Should.Throw <ArgumentOutOfRangeException>(() => register.TryRegister(typeof(ISchema), typeof(Schema), ServiceLifetime.Transient, (RegistrationCompareMode)42));
     register.Register(new Schema(new DefaultServiceProvider()));
 }
    public override void RegisterServices(IServiceRegister register)
    {
        register.TryRegister(typeof(IClassSingle), typeof(ClassSingle1), ServiceLifetime.Transient, RegistrationCompareMode.ServiceType);
        register.TryRegister(typeof(IClassSingle), typeof(ClassSingle2), ServiceLifetime.Transient, RegistrationCompareMode.ServiceType);

        register.TryRegister <IClassSingle, ClassSingle1>(p => new ClassSingle1(), ServiceLifetime.Transient, RegistrationCompareMode.ServiceType);
        register.TryRegister <IClassSingle, ClassSingle2>(p => new ClassSingle2(), ServiceLifetime.Transient, RegistrationCompareMode.ServiceType);

        register.TryRegister <IClassSingle>(new ClassSingle1(), RegistrationCompareMode.ServiceType);
        register.TryRegister <IClassSingle>(new ClassSingle2(), RegistrationCompareMode.ServiceType);

        //------------

        register.TryRegister(typeof(IClassMultiple), typeof(ClassMultiple1), ServiceLifetime.Transient, RegistrationCompareMode.ServiceTypeAndImplementationType);
        register.TryRegister(typeof(IClassMultiple), typeof(ClassMultiple2), ServiceLifetime.Transient, RegistrationCompareMode.ServiceTypeAndImplementationType);

        register.TryRegister <IClassMultiple, ClassMultiple1>(p => new ClassMultiple1(), ServiceLifetime.Transient, RegistrationCompareMode.ServiceTypeAndImplementationType);
        register.TryRegister <IClassMultiple, ClassMultiple2>(p => new ClassMultiple2(), ServiceLifetime.Transient, RegistrationCompareMode.ServiceTypeAndImplementationType);

        register.TryRegister <IClassMultiple>(new ClassMultiple1(), RegistrationCompareMode.ServiceTypeAndImplementationType);
        register.TryRegister <IClassMultiple>(new ClassMultiple2(), RegistrationCompareMode.ServiceTypeAndImplementationType);

        base.RegisterServices(register);
    }
 public override void RegisterServices(IServiceRegister register)
 {
     Should.Throw <ArgumentOutOfRangeException>(() => register.TryRegister <ISchema>(new Schema(), (RegistrationCompareMode)42));
     register.Register(new Schema(new DefaultServiceProvider()));
 }