class SimpleController : IReferenceable, IUnreferenceable, IConfigurable
{
    protected Worker worker;
    protected DependencyResolver depedencyResolver = DependencyResolver.FromTuples(
        "worker", new Descriptor("*", "worker", "*", "*", "1.0")
    );

    public void Configure(ConfigParams config)
    {
        depedencyResolver.Configure(config);
    }

    public void SetReferences(IReferences references)
    {
        depedencyResolver.SetReferences(references);
        worker = references.GetOneRequired<Worker>(new Descriptor("*", "worker", "worker1", "*", "1.0"));
    }

    public void UnsetReferences()
    {
        depedencyResolver = null;
    }

    ...
}


var references = References.FromTuples(
    new Descriptor("sample", "worker", "worker1", "111", "1.0"), new Worker1(),
    new Descriptor("sample", "worker", "worker2", "222", "1.0"), new Worker2()
);

var config = ConfigParams.FromTuples(
    "dependencies.worker", "*:worker:worker1:111:1.0"
);

var controller = new SimpleController();
controller.SetReferences(references);
controller.Greetenig("world");
controller.UnsetReferences();
controller = null;