示例:
控制台应用程序:
class Program
{
static void Main(string[] args)
{
var calculator = ObjectFactory.GetInstance<ICalculator>();
for (var i = 0; i < 10; i++)
{
Console.WriteLine(calculator.Calculate(10, 5));
Console.ReadLine();
}
Console.ReadLine();
}
}
装配“界面”:
public interface ICalculator
{
int Calculate(int a, int b);
}
大会“实施”:
internal class Calculator : ICalculator
{
public int Calculate(int a, int b)
{
return a + b;
}
}
装配“实施”,该装配应在运行时替换上面的装配:
internal class Calculator : ICalculator
{
public int Calculate(int a, int b)
{
return a * b;
}
}
装配“解析器”
For<ICalculator>().Use<Calculator>();
我想在运行时替换具体实现。这可以通过UpdateService来完成,它只替换旧的程序集“Implementation”。
我遇到的问题是程序集“实现”已被锁定。我无法取代它。
我需要做些什么来实现这个目标?
IoC容器是否对我的要求负责,还是我必须构建自己的基础架构?
修改
在Web环境中,您可以轻松更换装配体。我已经成功地做到了这一点。
答案 0 :(得分:2)
答案 1 :(得分:0)