使用统一框架将单例映射到接口(配置文件)

时间:2009-12-11 16:52:53

标签: unity-container ioc-container

是否有地图/注册单例,使用统一配置文件,并将其映射到接口,而单例不暴露任何公共构造函数?

请建议,

由于

1 个答案:

答案 0 :(得分:1)

如果你想让unity创建一个实例,你可以使用一个暴露内部(至少)构造函数的类。另一方面,您可以为Unity编写容器扩展,可以通过反射使用私有构造函数。 另一种方法是编写一个具有公共构造函数的自定义类,并实现该接口。然后它与你的单身人士谈话,如:

public class SingletonCreator: ISingleton
{
  public int SomeMethodInsideInterface()
  {
    return RealSingleton.Instance.SomeMethodInsideInterface();
  }

我更喜欢扩展方法,像这样的代码(如下所示)应该让你进入私有构造函数。然后你将在你的配置中使用这个容器扩展名,以告诉团结使用你的扩展名。

ConstructorInfo[] constructors = typeToConstruct..GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)