通常の.NETFrameworkクラスライブラリのソースコードを使用して、WindowsStoreクラスライブラリを構築したいと思います。理想的には、元のソースコードファイルを変更したくありません。
.NET Frameworkライブラリの一部のソースコードファイルでは、静的メンバーは、通常の.NETFrameworkAPIと.NETforWindows Store Apps APIの両方で定義されているクラスから使用されますが、 。のサブセットのみが使用されます。 NET Frameworkメンバーは、Windowsストアで利用できます。
具体的な例の1つは、 System.IO.Pathです。この場合、GetFullPathメソッドはWindowsストアアプリでは使用できません。
このメソッドの代わりをWindowsStoreクラスライブラリに組み込み、代わりに元のソースコードでこのメソッドを呼び出すのはかなり簡単です。私の質問は、元のソースコードファイルを変更せずにこれを行う方法はありますか?
これまでのところ、この問題に対する満足のいく解決策を見つけることはできませんでしたが、たとえば別の名前空間にメソッドを実装することで、 WindowsStoreクラスライブラリの問題を解決しました。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
元のソースコードファイルの変更を必要としないこの問題の代替ソリューションはありますか?