factoryMethod

Invoke T's method to create component of type X.

Configures component's factory to call method of factoryMethod with args, in order to create component of type X. In case when method is not a static member, the function requires to pass a instance of factoryMethod or a reference to it. The algorithm will check for args compatiblity with parameters of factory method. No type check is done for arguments that are references at compile time.

  1. Z factoryMethod(Z factory, W factoryMethod, Args args)
    @safe
    Z
    factoryMethod
    (
    T
    string method
    Z : InstanceFactoryAware!X
    X
    W
    Args...
    )
    (,
    auto ref W factoryMethod
    ,
    auto ref Args args
    )
    if (
    isNonStaticMethodCompatible!(T, method, Args) &&
    (
    is(W : T) ||
    is(W : RuntimeReference)
    )
    )
  2. Z factoryMethod(Z factory, Args args)
  3. Z factoryMethod(Z factory, Dg func, Args args)

Parameters

factory Z

component's factory that is configured to call factoryMethod methods to spawn component

factoryMethod W

instance of factory method that will be used to instantiate component

args Args

a list of arguments passed to factory method

T

type of factoryMethod

method

the method that is called from T to instantiate component

W

either LocatorReference or T

X

the return type of T.method member

Meta