sourceafIoc::Contribute.fan


** Use in 'AppModule' classes to denote a service contribution method. The service to be contributed to 
** is derived from either the serviceId, serviceType, or the method name. 
** 
** Either 'serviceId' or 'serviceType' should be defined, not both. 
@Js
facet class Contribute {

    ** The id of the service to be configured. 
    ** 
    ** Use either this or 'serviceType', not both.
    const Str?  serviceId   := null

    ** The type of the service to be configured.
    **  
    ** Use either this or 'serviceId', not both.
    const Type? serviceType := null

    ** Marks the contribution as optional; no Err is thrown if the service is not found. 
    ** 
    ** This allows you to contribute to services that may or may not be defined in the registry.
    ** (e.g. contributing to optional 3rd party library)
    const Bool  optional    := false
}