我目前使用 Autofac 进行简单的构造函数注入,没有任何问题。但是我想知道的是如何在运行时解决依赖关系。下面的示例显示了我们可以导出文档的多种方式。通过简单的构造函数注入,IExport 的具体实现在运行时被解析。然而,需要做的是从下拉列表中解决用户选择的 IExport,这将在我的容器构建后发生。有没有什么例子可以说明我如何做到这一点?
Public interface IExport
{
void Run(string content);
}
public class PDFformat : IExport
{
public void Run(string content)
{
// export in pdf format
}
}
public class HTMLformat : IExport
{
public void Run(string content)
{
// export in html format
}
}
public class RTFformat : IExport
{
public void Run(string content)
{
// export in rtf format
}
}
public class HomeController : Controller
{
IExport Export;
public HomeController(IExport export)
{
Export = export;
}
public void ExportDocument(string content)
{
Export.Run(content);
}
}
对此的任何帮助将不胜感激。