【问题标题】:Can you use "params" in Unity你可以在 Unity 中使用“参数”吗
【发布时间】:2014-07-10 09:00:10
【问题描述】:

我编写了一个抽象工厂,它将容纳一个简单工厂接口的具体实现的集合。我希望能够使用 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;
    }
}

这可以统一吗?如果我在容器中注册不同的实现,这会“起作用”吗?

谢谢

【问题讨论】:

    标签: c# inversion-of-control unity-container params abstract-factory


    【解决方案1】:

    Unity 原生编译 C#,以及所有 C#。他们不选择要编译的功能。因此,要回答您的问题,是的,可以在 Unity 中使用 params 关键字。

    【讨论】:

      猜你喜欢
      • 2013-09-10
      • 2016-12-20
      • 1970-01-01
      • 2013-06-05
      • 2012-11-26
      • 2019-11-21
      • 1970-01-01
      • 1970-01-01
      • 2015-07-10
      相关资源
      最近更新 更多