你能用"params"在团结

本文关键字:quot params | 更新日期: 2023-09-27 18:12:21

我已经编写了一个抽象工厂,它将容纳一个简单工厂接口的具体实现集合。我希望能够通过简单的工厂实现使用Unity。我可以使用params关键字来允许传入任意数量的已注册实现吗?所以我的代码是:

public class StreamAbstractFactory : IStreamAbstractFactory
{
    private readonly Dictionary<StreamFactoryType, IStreamFactory> _streamFactoryDictionary;
    public StreamAbstractFactory(params IStreamFactory[] streamFactories)
    {
        _streamFactoryDictionary = new Dictionary<StreamFactoryType, IStreamFactory>();
        foreach (var factory in streamFactories)
        {
            _streamFactoryDictionary.Add(factory.Key, factory);
        }
    }
    public Stream Create(string path, StreamFactoryType type)
    {
        if (_streamFactoryDictionary != null)
        {
            IStreamFactory factory;
            if (_streamFactoryDictionary.TryGetValue(type, out factory))
            {
               return factory.Create(path);
            }
        }
        return null;
    }
}

这在统一中可能吗?如果我在容器中注册不同的实现,这只是"工作"吗?

谢谢

你能用"params"在团结

Unity原生编译c#和所有c#。他们不选择编译或不编译哪些特性。所以回答你的问题,是的,params关键字可以在Unity中使用。