我想建立一個Windows商店類庫使用源代碼從一個正常的.NET框架類庫。理想情況下,我不想修改原始源代碼文件。我可以在.NET API中「添加」靜態方法到現有的類嗎?
在某些從.NET Framework庫的源代碼文件,靜態成員是從在兩個常規.NET框架 API和.NET的Windows Store應用程序定義的類使用API,但只有部分成員可用於Windows應用商店。
一個具體示例是System.IO.Path,其中GetFullPath method不適用於Windows應用商店應用。
這是相當簡單的合併對這種方法的替代品,我Windows應用商店的類庫,並有原始源代碼調用此方法來代替。我的問題是,有沒有任何我可以做到這一點,而無需修改原始源代碼文件?到目前爲止,我還沒有能夠找到令人滿意的解決方案來解決這個問題,但是我通過實現例如我的Windows Store類庫來解決這個問題。該Path.GetFullPath(string)
方法在另一個命名空間:
namespace WindowsStoreLib.System.IO {
public static class Path {
public static string GetFullPath(string path) { ... }
}
}
,然後加在原始文件的預處理器指令:
#if NETFX_CORE
using Path = WindowsStoreLib.System.IO.Path;
#endif
是否有其他解決這個問題,做不要求原來的修改源代碼文件?
製作您的庫的兩個版本,一個重新實現所需的內容,另一個只調用本地版本,並根據您的應用程序版本包含不同的版本。 – millimoose 2013-03-22 12:44:27
簡短的回答是:不,您不能將靜態方法添加到現有類。 – 2013-03-22 12:46:06
@millimoose我希望能夠在不修改的情況下重用基於.NET Framework的庫中的原始源代碼,並在這些文件中使用例如'Path.GetFullPath()'。 – 2013-03-22 12:46:49