Windows Store 클래스 라이브러리 (일반 )의 소스 코드를 사용하여 .NET Framework 클래스 라이브러리을 만들고 싶습니다. 이상적으로는 원래 소스 코드 파일을 수정하고 싶지 않습니다. .NET 프레임 워크 라이브러리에서 소스 코드 파일의 일부에서 .NET API에서 기존 클래스에 정적 메서드를 "추가"할 수 있습니까?
는, 정적 멤버는 일반 .NET 프레임 워크 API 및 Windows 스토어 앱을위한 .NET 모두에 정의 된 클래스에서 사용된다 API를 사용하지만 .NET Framework 멤버의 하위 집합 만 Windows 저장소에 사용할 수 있습니다.특정 예로는 System.IO.Path입니다. GetFullPath method은 Windows Store apps에는 사용할 수 없습니다.
Windows Store 클래스 라이브러리에이 메서드를 대체하고이 원본 메서드를 대신 호출 할 수 있습니다. 내 질문은, 거기에 나는 원래의 소스 코드 파일을 수정하지 않고 이것을 할 수있는 방법은 무엇입니까?
지금까지는이 문제에 대한 만족스러운 해결책을 찾을 수 없었지만 예를 들어 WindowsXP를 구현하여 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
짧은 대답은 : 아니오, 기존 클래스에 정적 메서드를 추가 할 수 없습니다. –
@millimoose 수정없이 .NET Framework 기반 라이브러리의 원본 소스 코드를 재사용 할 수 있기를 원합니다. 예를 들어 'Path.GetFullPath()'가 사용되었습니다. –