我有一個項目,其中包含一個繪製圖形的類。這個類看起來是這樣的: -如何創建一個可以使用兩個名稱空間之一的類?
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
}
}
}
我想知道是否有可能使用相同的項目/班/兩個代碼,我自然不想cut'n '將代碼粘貼到兩個不同的地方,唯一的區別是using
指令。
我不明白我可以如何使用泛型,因爲(替代)名稱空間中的對象函數內部存在聲明,如上面顯示的ChartArea。我看不到使用條件編譯的方式,因爲需要哪一行取決於項目所在的解決方案,而不是項目本身,並且它不能引用調用方項目,因爲它會創建循環引用。我也不能將Web圖形投射到一個Windows圖表。
我已經能夠管理的最好的辦法是同時提供using
指令,但根據我目前正在使用的解決方案評論其中的一個。但是這對我來說似乎並不令人滿意。有沒有更好的辦法?或者我應該不是那麼空閒並且將代碼寫兩次?
感謝您的回答,但遺憾的是或多或少的都在函數使用某種形式的圖形相關的對象。 – 2012-07-26 10:23:15
@BrianHooper只是出於好奇他們是來自這些命名空間 – HatSoft 2012-07-26 11:44:58
@BrianHooper請參閱我的更新答案的UI輸出中有很大的差異,這可能幫助你 – HatSoft 2012-07-26 11:48:10