Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用DI添加使用2个数字计算的新方程式_C#_Algorithm_Dependency Injection - Fatal编程技术网

C# 使用DI添加使用2个数字计算的新方程式

C# 使用DI添加使用2个数字计算的新方程式,c#,algorithm,dependency-injection,C#,Algorithm,Dependency Injection,我正在开发一个程序,希望能够使用DI,C#添加功能,因此我将创建一个示例,看看这是否可行 我有一个程序,用户可以输入任意两个数字。 然后程序查看xml文件中的所有插件,并使用注入的类来计算这两个数字 所以,我创建了两个类,加法和减法。我把它们放进去运行我的程序 理想情况下,我想让程序找到这两个类,并在遍历方程后显示结果 现在,其他人编写“Multiply”,将其放入一个目录,更新xml文件,下次我运行程序时,使用两个数字,会有三个结果 现在,我不知道会有多少插件 在C#中,使用DI有什么方法可以

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

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

所以,我创建了两个类,加法和减法。我把它们放进去运行我的程序

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

现在,其他人编写“Multiply”,将其放入一个目录,更新xml文件,下次我运行程序时,使用两个数字,会有三个结果

现在,我不知道会有多少插件

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

我不知道这是否可能

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

我可以通过手动加载xml文件中引用的类来实现这一点,这样就可以完成了,但是,我希望有一个依赖关系框架来处理繁重的工作


更新:我希望使用Unity框架来实现这一点。

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

当然,具体细节将取决于您想要使用的DI框架