是否有地图/注册单例,使用统一配置文件,并将其映射到接口,而单例不暴露任何公共构造函数?
请建议,
由于
答案 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)