2011-04-01 4 views
0

로컬 위치에 배치 된 이미지가 들어있는 html 파일이 있습니다.이 이미지를 읽으려면 Isolated Storage.But을 사용하고 있습니다. 격리 된 저장소에 이미지를 저장하는 동안 파일 이름을 지정해야합니다. 예를 들어 : abc.jpg와 xyz.jpg라는 두 개의 이미지가 있지만이 이름이 abc1.jpg와 xyz1.jpg로 바뀌면 오류가 발생합니다. 의존하지 않는 제네릭 코드를 작성하는 데 사용할 수있는 것은 무엇입니까? 파일 이름에?IsolatedStorage에 파일을 저장하기위한 일반 코드

+0

용어 "ABC", "XYZ", "ABC1"와 "xyz1을"식별자이다. 한 곳에서 식별자를 변경하면 다른 곳에서는 사용되지 않지만 반드시 틀리게 예상해야합니다. 나는 그 문제를 충분히 잘 설명하지 않았다고 생각합니다. generic이라는 단어를 사용하면 많은 개발자가 ""을 볼 수 있기 때문에 "Generic"이라는 단어를 사용하면 오해의 소지가 있습니다. 그러나 나는 그것이 무슨 뜻인지는 생각하지 않습니다. – AnthonyWJones

답변

1

나는 이런 식으로 작업을 수행합니다

internal static T LoadFile<T>(string folderName, string filePrefix) where T : class 
{ 
    string fileStreamName = string.Format("{0}\\{1}.dat", folderName, filePrefix); 
    return LoadFile<T>(fileStreamName); 
} 

internal static T LoadFile<T>(string fileStreamName) where T : class 
{ 
    T retval = default(T); 

    if (IsoStore.FileExists(fileStreamName)) 
    { 
     using (IsolatedStorageFileStream stream = new IsolatedStorageFileStream(fileStreamName, FileMode.OpenOrCreate, IsoStore)) 
     { 
      if (stream.Length > 0) 
      { 
       DataContractSerializer dcs = new DataContractSerializer(typeof (T)); 
       retval = dcs.ReadObject(stream) as T; 
      } 
     } 
    } 

    return retval; 
} 
+0

답장을 보내 주셔서 감사합니다.하지만 IsoStore가 여기에 나타내는 것은 무엇입니까? – Shaireen

+0

@IndianBird'var IsoStore = IsolatedStorageFile.GetUserStoreForApplication();'시도해보기 :) – Vaysage

+0

@SteveChadbourne : 무엇을 제안했으나 다시 시도해 보았습니다. filestreamname .what을 요구할 것입니다. 이름을 알지 못하면 그냥. jpg 파일? – Shaireen

0

posssible 솔루션입니다 :

당신은 당신의 XAP 내에서 이러한 파일을 저장하기 위해 자원 파일을 사용할 수 있습니다 - 파일 사용 | 새로 만들기 -> 리소스 파일을 다음 자원 -> 기존 파일 추가를 사용하십시오.

리소스 파일은 각 리소스 (텍스트 파일의 유형 문자열 및 이진 파일의 경우 byte [] 유형)에 대한 public 속성을 자동으로 생성합니다.

당신은 반사를 사용하여 이러한 공용 속성을 나열 할 수 있습니다 - 같은 :

foreach (PropertyInfo pi in MyResources.GetType().GetProperties()) 
    { 
     string propertyName = pi.Name; // the name of your resource 
     object propValue = pi.GetValue(o, null); // the value of your resource 

     // put your save code here - you might need to use some naming conventions to work out file extensions 
    } 
관련 문제