我正在开发一个程序,我希望能够使用 DI、C# 添加功能,因此我将创建一个示例以查看这是否可行。
我有一个程序,用户可以输入任意两个数字。 该程序然后查看 xml 文件中的所有插件,并使用注入(inject)的那些类来计算这两个数字。
因此,我创建了两个类,Add 和 Subtract。我将它们放入并运行我的程序。
理想情况下,我想让程序找到这两个类并在完成方程式后显示结果。
现在,别人写了“乘法”,把它放到一个目录中,更新了 xml 文件,下次我运行我的程序时,有两个数字,有三个结果。
现在不知道会有多少插件
在 C# 中,有没有什么方法可以使用 DI 来获得这种类型的功能?
不知道有没有可能。
我想弄清楚这一点,因为我想展示一种使用不同类型的图表来绘制一些数据的方法,但我认为使用二元方程方法可以使解释更简单,我认为。
我可以通过手动加载 xml 文件中引用的类来完成此操作,所以它可以完成,但是,我希望有一个依赖框架为我处理繁重的工作。
更新:我希望为此使用 Unity 框架。
最佳答案
您可以公开接口(interface)(例如 IMathOperation
,使用单个方法,例如 Compute
),然后在 DI 框架配置文件中指定实现该接口(interface)的类型(Add
、Subtract
等)。 DI 框架通常允许您指定程序集名称和类型名称,并且它们通常也擅长于允许您创建相似类型的集合,因此您可以拥有一个具有 IList<IMathOperation>
类型的属性或构造函数参数的类型.在配置文件中设置该属性/参数,您就可以开始了。
当然,确切的细节将取决于您要使用的 DI 框架。
关于c# - 使用 DI 添加用于使用 2 个数字进行计算的新方程式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/769624/