【发布时间】:2013-12-28 09:41:09
【问题描述】:
我有一个实现单例设计模式的类。但是,每当我尝试获取该类的实例时,使用 Activator.CreateInstance(MySingletonType) 只会调用私有构造函数。除了私有构造函数,还有什么方法可以调用其他方法吗?
我的班级定义如下:
public class MySingletonClass{
private static volatile MySingletonClassinstance;
private static object syncRoot = new object();
private MySingletonClass()
{
//activator.createInstance() comes here each intantiation.
}
public static MySingletonClassInstance
{
get
{
if (instance == null)
{
lock (syncRoot)
{
if (instance == null)
instance = new MySingletonClass();
}
}
return instance;
}
}
}
实例化如下:
Type assemblyType = Type.GetType(realType + ", " + assemblyName);
IService service = Activator.CreateInstance(assemblyType, true) as IService;
【问题讨论】:
-
你为什么要在这里使用激活器?看起来您只是在尝试使用静态属性。
-
我正在使用独特的服务加载器以动态方式加载一组服务。
标签: c# singleton default-constructor activator