3

我正在將我的應用程序之一從WP 8.0遷移到UWP。我有一些JSON內容,我想隱藏常規用戶。在以前的版本我能夠把這些JSON文件的生成操作設置爲「嵌入的資源」,並使用迭代它們:如何讀取UWP中的嵌入式資源?

Application.GetResourceStream(new Uri(path, UriKind.Relative)); 

但這種方法不可用UWP。

那麼,有沒有辦法在UWP讀取嵌入的資源呢?或者,除了將構建操作設置爲「內容」之外,還有其他方法可以存儲這些文件?

回答

2

您可以通過使用Assembly類的方法可用資源的列表迭代:

var names = someInstance.GetType() 
      .GetTypeInfo() 
      .Assembly 
      .GetManifestResourceNames(); 

,然後加載資源的全名從上面的列表:

var stream = someAssembly.GetManifestResourceStream(name); 

然後做你想做的與流。

0

你需要讓你嵌入的資源,然後調用GetManifestResourceStream大會。

我有一個命名空間YourProjectNameSpace樣品有MyFolder中包含MyFile.json:

public class EndpointBuilder 
{ 
    private static String _filePath = "YourProjectNameSpace.MyFolder.MyFile.json"; 

    public async Task<Endpoint> Build() { 

     var assembly = this.GetType().GetTypeInfo().Assembly; 
     var stream = assembly.GetManifestResourceStream(_filePath); 

     JsonSerializer jsonSerializer = new JsonSerializer(); 
     var serializer = new JsonSerializer(); 

     using (var sr = new StreamReader(stream)) 
     using (var jsonTextReader = new JsonTextReader(sr)) 
     { 
      Endpoint enpoint = serializer.Deserialize<Endpoint>(jsonTextReader); 
      return enpoint; 
     } 
    } 
}