c# - 使用 DI 添加用于使用 2 个数字进行计算的新方程式

标签 c# algorithm dependency-injection

我正在开发一个程序,我希望能够使用 DI、C# 添加功能,因此我将创建一个示例以查看这是否可行。

我有一个程序,用户可以输入任意两个数字。 该程序然后查看 xml 文件中的所有插件,并使用注入(inject)的那些类来计算这两个数字。

因此,我创建了两个类,Add 和 Subtract。我将它们放入并运行我的程序。

理想情况下,我想让程序找到这两个类并在完成方程式后显示结果。

现在,别人写了“乘法”,把它放到一个目录中,更新了 xml 文件,下次我运行我的程序时,有两个数字,有三个结果。

现在不知道会有多少插件

在 C# 中,有没有什么方法可以使用 DI 来获得这种类型的功能?

不知道有没有可能。

我想弄清楚这一点,因为我想展示一种使用不同类型的图表来绘制一些数据的方法,但我认为使用二元方程方法可以使解释更简单,我认为。

我可以通过手动加载 xml 文件中引用的类来完成此操作,所以它可以完成,但是,我希望有一个依赖框架为我处理繁重的工作。

更新:我希望为此使用 Unity 框架。

最佳答案

您可以公开接口(interface)(例如 IMathOperation,使用单个方法,例如 Compute),然后在 DI 框架配置文件中指定实现该接口(interface)的类型(AddSubtract 等)。 DI 框架通常允许您指定程序集名称和类型名称,并且它们通常也擅长于允许您创建相似类型的集合,因此您可以拥有一个具有 IList<IMathOperation> 类型的属性或构造函数参数的类型.在配置文件中设置该属性/参数,您就可以开始了。

当然,确切的细节将取决于您要使用的 DI 框架。

关于c# - 使用 DI 添加用于使用 2 个数字进行计算的新方程式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/769624/

相关文章:

c# - 为什么使用存储库模式或者请向我解释一下?

时间:2019-03-17 标签:c#regex notough

algorithm - 将许多小多边形组合成一个(一些)大多边形

javascript - 我试图从一堆 <a> 标签 : Explain where I'm going wrong 中获取 href

c# - 在 MEF 中导出泛型

java - 为什么我的 @Autowired DataSource 和 JdbcTemplate 变为 null?

c# - 如何在没有 "new' ing"类实例并自己提供参数的情况下进行依赖注入(inject)?

c# - 我可以在不扩展表格的情况下扩展模型吗?

C# 在处理列表时给出 NullReferenceException

algorithm - 使用Python和DFS算法的递归深度问题