2010-01-11 29 views
7

Chúng tôi có một Res1.resx và tệp có tệp là 1.doc. Sau đó, chúng tôi muốn thay thế file1.doc bằng file2.doc trong tệp resx dựa trên quy tắc nghiệp vụ. Làm thế nào để đạt được điều này. Cảm ơn NCập nhật tệp tài nguyên động

+1

Thay thế chương trình nội dung của tệp tài nguyên sau khi dự án được biên dịch? Có phải đó là những gì bạn cần? – Codesleuth

+2

Đợi chút! Quy tắc kinh doanh ảnh hưởng đến Tệp tài nguyên ?! Ý anh là gì? –

+1

:: Lập trình thay thế nội dung của tệp tài nguyên sau khi dự án :: được biên dịch? Có. –

Trả lời

2

Xin lỗi, tôi không nghĩ rằng điều này có thể

1

Chắc chắn bạn có thể làm điều đó. Đây là một chút mã chúng tôi sử dụng. Vui lòng cho tôi biết nếu bạn cần thêm chi tiết.

/// <summary> 
/// Sets or replaces the ResourceDictionary by dynamically loading 
/// a Localization ResourceDictionary from the file path passed in. 
/// </summary> 
/// <param name="resourceDictionaryFile">The resource dictionary to use to set/replace 
/// the ResourceDictionary.</param> 
private void SetCultureResourceDictionary(String resourceDictionaryFile) 
{ 
    // Scan all resource dictionaries and remove, if it is string resource distionary 
    for (int index= 0; index < Resources.MergedDictionaries.Count; ++index) 
    { 
     // Look for an indicator in the resource file that indicates that this 
     // is a dynamic file that should be removed before loading its replacement. 
     if (Resources.MergedDictionaries[index].Contains("ResourceDictionaryName")) 
     { 
      if (File.Exists(resourceDictionaryFile)) 
      { 
       Resources.MergedDictionaries.Remove(Resources.MergedDictionaries[index]); 
      } 
     } 
    } 

    // read required resource file to resource dictionary and add to MergedDictionaries collection 
    ResourceDictionary newResourceDictionary = new ResourceDictionary(); 
    newResourceDictionary.Source = new Uri(resourceDictionaryFile); 
    Resources.MergedDictionaries.Add(newResourceDictionary); 
} 
2

Nếu bạn đang cố gắng sửa đổi tài nguyên đã biên dịch trong thời gian chạy, tôi không nghĩ rằng điều đó có thể, ít nhất là không có hack xấu xí. Dù sao, nó không có ý nghĩa: nếu nó là một nguồn tài nguyên, nó không có nghĩa là để được sửa đổi; và nếu nó cần phải được sửa đổi, nó không phải là một tài nguyên.

Các vấn đề liên quan