我有一个Ninject IoC容器,其中包含许多绑定。我正在绑定我的linqpad脚本。
但是,当我尝试多次运行时,此操作将失败,因为在第二次运行中,同一类型将存在多个绑定,因此,当我尝试从IoC容器获取时,它将失败。
我是否从Ninject使用了应用程序启动或初始化函数,因此绑定仅发生一次?
例如,在MVC程序中,我将使用Application_Start()
示例:在该程序中,每次运行程序时,输出计数都会增加。是否可以挂入应用程序启动事件以重置计数?
我的实际需要是防止ninject内核的双重绑定,所以请不要使用任何解决单例的“解决方案”,我知道这不是线程安全的!
void Main()
{
{
var x = Singleton.Instance;
Console.WriteLine(x.count++);
}
}
// Define other methods and classes here
public class Singleton
{
private static Singleton instance;
private Singleton() { }
public int count;
public static Singleton Instance
{
get
{
if (instance == null)
{
instance = new Singleton();
instance.count = 0;
}
return instance;
}
}
}
呼如林
相关分类