@startuml
class "FactoryArgumentsToChoiceBinder`3"<TParam1,TParam2,TContract> {
    + FactoryArgumentsToChoiceBinder(bindContainer:DiContainer, bindInfo:BindInfo, factoryBindInfo:FactoryBindInfo)
    + WithFactoryArguments(param:T) : FactoryToChoiceBinder<TParam1, TParam2, TContract>
    + WithFactoryArguments(param1:TFactoryParam1, param2:TFactoryParam2) : FactoryToChoiceBinder<TParam1, TParam2, TContract>
    + WithFactoryArguments(param1:TFactoryParam1, param2:TFactoryParam2, param3:TFactoryParam3) : FactoryToChoiceBinder<TParam1, TParam2, TContract>
    + WithFactoryArguments(param1:TFactoryParam1, param2:TFactoryParam2, param3:TFactoryParam3, param4:TFactoryParam4) : FactoryToChoiceBinder<TParam1, TParam2, TContract>
    + WithFactoryArguments(param1:TFactoryParam1, param2:TFactoryParam2, param3:TFactoryParam3, param4:TFactoryParam4, param5:TFactoryParam5) : FactoryToChoiceBinder<TParam1, TParam2, TContract>
    + WithFactoryArguments(param1:TFactoryParam1, param2:TFactoryParam2, param3:TFactoryParam3, param4:TFactoryParam4, param5:TFactoryParam5, param6:TFactoryParam6) : FactoryToChoiceBinder<TParam1, TParam2, TContract>
    + WithFactoryArguments(args:object[]) : FactoryToChoiceBinder<TParam1, TParam2, TContract>
    + WithFactoryArgumentsExplicit(extraArgs:IEnumerable<TypeValuePair>) : FactoryToChoiceBinder<TParam1, TParam2, TContract>
}
class "FactoryToChoiceBinder`3"<T1,T2,T3> {
}
"FactoryToChoiceBinder`3" "<TParam1,TParam2,TContract>" <|-- "FactoryArgumentsToChoiceBinder`3"
@enduml
