我有一个项目,其中包含一个在图表上绘制的类。该课程如下所示:-
using System.Web.UI.DataVisualization.Charting;
namespace MyNameSpace
{
public static class Utilities
{
public static void DrawOnGraph (Chart ourChart,
// ...more parameters...
)
{
ChartArea our_area = new ChartArea("Main");
// Draw things
}
}
}
这是由同一解决方案中另一个项目中包含的 Web 应用程序驱动的。我现在需要创建一个表单应用程序,该应用程序将使用完全相同的输入到 Web 表单上绘制完全相同的图形。我希望将项目包含在第二个解决方案中。但是课程需要看起来像这样:-
using System.Windows.Forms.DataVisualization.Charting;
namespace MyNameSpace
{
public static class Utilities
{
public static void DrawOnGraph (Chart ourChart,
// ...more parameters...
)
{
ChartArea our_area = new ChartArea("Main");
// Draw things
}
}
}
我想知道是否可以对两者使用相同的项目/类/代码,因为我自然不想将代码剪切'n'粘贴到两个不同的地方,唯一的区别是using
指令。
我看不到如何使用泛型,因为(替代)命名空间中的对象函数内部有声明,例如上面显示的 ChartArea。我看不到使用条件编译的方法,因为需要哪一行取决于项目所在的解决方案,而不是项目本身,并且它不能引用调用者项目,因为这会创建循环引用。我也不能将 web 图表转换为 windows 图表。
我能做到的最好的办法是提供两个using
指令,但根据我目前正在研究的解决方案将其中一个注释掉。但这对我来说似乎不是很满意。有没有更好的办法?还是我不应该这么闲着把代码写两遍?