2012-01-27 2 views
1

Я пытаюсь реализовать отчет, основанный на веб-странице. Веб-страница находится в одном проекте MyProject.Web, а отчет находится в проекте MyProject.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; 

необходимо удалить.

Какое лучшее решение здесь?

ответ

4

Похож на классический случай adapter pattern.

В принципе, вы можете инкапсулировать части, которые отличаются друг от друга, и реализовать их по-разному. Вы можете либо создать класс и подкласс MyAwesomeChart, что или что-то более похожее на MyAwesomeChartSetter.

+0

Я проверю это. –

1

В этом случае лучшим решением было бы использовать ту же реализацию в обоих проектах.

Если вы не можете этого сделать, просто оставьте его. Если вы разместили весь код, то на самом деле это не так.

+0

Я, не в состоянии сделать это, так как это третья сторона, которая контролирует обе реализации. Это примерно один-два процента от общего кода, который несовместим. Все остальное отлично работает. –

Смежные вопросы