최종 해결책은 다음과 같을 수 있습니다. 어떻게 생각하십니까? * IronPython의를 사용하여 고급 속성을 관리합니다
[*] http : \\ www.micros oft.com/download/en/details.aspx?displaylang=en & id = 8422
[**] http : \\ ironpython.codeplex.com
[** *] http : \\ pypi.python.org/pypi/xatt
확장 속성 작업이 (등등 SetPropery(string key, object value)
및 GetProperty(string key)
로) 정적 클래스 두 가지 파생 형으로 FileAttrsManager 객체를 초기화 (FileAttrsProvider)에서 관리 될 것이다 즉 :
public static class FileAttrProvider
{
private static FileAttrReader _reader = null;
public static void Initialize()
{
switch (Environment.OSVersion.Platform)
{
case PlatformID.MacOSX:
goto case PlatformID.Unix;
case PlatformID.Unix:
_reader = new FileAttrReaderUnix();
break;
case PlatformID.Win32NT:
_reader = new FileAttrReaderDos();
break;
}
}
}
유도 된 유형은 환경에 따라 다르며, 원래 유형은 _reader 객체를 호출하는 모든 메소드의 자동 디스패치를 보장하기 위해 사용됩니다.
종종 외부 라이브러리를 사용하는 것이 버그를 거의 발생시키지 않는다는 의미에서 직접 작성하는 것보다 훨씬 안전합니다. 아니면 "안전함"으로 다른 것을 의미 했습니까? – svick
@svick 나는 그가 안전하다는 의미가 무엇인지 생각한다. C#은 관리되는 언어이며 파이썬은 그렇지 않습니다. – thekip
@thekip이 맞습니다. 완전히 관리되는 코드와 동질성있는 개발 환경을 원합니다. 저는 이미 C#을 접착제로 사용하고 있습니다 : HTTP5 + jQuery + JSON app (xulrunner에서 실행), 원시 C# 코드, SQLite/MySQL 래퍼 엔티티 공급자 등 일부 다른 (관리되지 않는) 언어와 도구를 확실히 추가하면 내 앱을 좀더 안정적으로 만들지 마라. – Salaros