VContainer-registering/register-collection | 注册——注册集合

VContainer 支持隐式解析特定集合类型,用于处理多实例注册的场景。

当同一接口被多次注册时,可通过 IEnumerable<T>IReadOnlyList<T> 一次性解析所有实例:

builder.Register<IDisposable, A>(Lifetime.Scoped);
builder.Register<IDisposable, B>(Lifetime.Scoped);
class ClassA
{
    public ClassA(IEnumerable<IDisposable> disposables) { /* ... */ }
}

或者

class ClassA
{
    public ClassA(IReadOnlyList<IDisposable> disposables) { /* ... */ }
}

:::note
此功能常用于内部机制,例如标记了 ITickable 接口的组件。
:::

posted @ 2025-02-17 22:29  凌雪寒  阅读(72)  评论(0)    收藏  举报