我正在尝试实施基于网页的报告。该网页位于一个项目MyProject.Web中,该报告位于MyProject.Reports项目中。在这两种情况下,我想显示相同的控件元素(第三方图表控件)。 Reports项目使用第三方图表控件略有不同的实现(意味着大多数成员都兼容)。几乎所有代码都可以在两个项目之间进行复制粘贴。但是,以下代码在Reports项目中不兼容:
chart.BorderOptions.Visible = false; // BorderOptions is not a member
需要替换为:
chart.Borders = BorderSide.None;
此:
chart.Height = Unit.Pixel(300); // Unit type
chart.Width = Unit.Pixel(700); // Unit type
需要替换为:
chart.Height = 300; // int type
chart.Width = 700; // int type
最后:
chart.Padding.All = 0;
需要删除。
这里有什么最好的解决方案?
答案 0 :(得分:4)
看起来像adapter pattern的经典案例。
基本上,您可以封装不同的部分,只是以不同方式实现它们。您可以创建一个MyAwesomeChart
类,也可以创建类似MyAwesomeChartSetter
的类。
答案 1 :(得分:1)
在这种情况下,最好的解决方案是在两个项目中使用相同的实现。
如果你不能那样做,那就离开吧。如果您发布了所有代码,那么实际上并不是那么相似。