2016-08-17 8 views
0

У меня есть приложение, написанное на C#, MVC, с использованием Entity Framework и CodeFirst. У меня возникла проблема с выходом пользователей из системы после изменения базы данных вручную. Хотя это не большая проблема, потому что такая вещь не будет происходить много, когда услуга будет завершена, проблема более раздражает, когда администратор вносит изменения в файл .resx, содержащий переводы. Мы создали панель администратора, в которой можно добавить языки, изменить текст по умолчанию, отображаемый на сайте, и так далее. Каждый раз, когда я меняю текст (так что строка в файле .resx), я выхожу из системы. Я не знаю, где проблема и как ее отслеживать. Незнайка, если это поможет, но вот код для редактирования существующих текстов в .resx файла:Пользователь MVC выходит из системы после изменения базы данных вручную или изменяет файл resx программно

using (ResXResourceReader resxReader = new ResXResourceReader(resxFilePath)) 
{ 
    resx = resxReader.Cast<DictionaryEntry>().ToList(); 
    var existingResource = resx.SingleOrDefault(entry => entry.Key.ToString().Equals(model.EntryName)); 
    var modifiedResx = new DictionaryEntry() 
    { 
     Key = existingResource.Key, 
     Value = model.NewEntryValue 
    }; 

    resx.Remove(existingResource); 
    resx.Add(modifiedResx); 
} 

using (ResXResourceWriter resxWriter = new ResXResourceWriter(resxFilePath)) 
{ 
    resx.ForEach(r => 
    { 
     resxWriter.AddResource(r.Key.ToString(), r.Value.ToString()); 
       }); 
     resxWriter.Generate(); 
    } 
} 

ответ

0

Вы не можете изменить ресурсы (.resx) во время выполнения. Вы можете получить только значение Resource, написав этот фрагмент кода.

ProjectTest.Resources.Message 

Для этой цели можно использовать Application settings and User setting.

Это позволит вам использовать конструктор для создания настроек, и написать:

string string1 = Properties.Settings.Default.String1; 

И:

Properties.Settings.Default.String1 = "whatever"; 
Properties.Settings.Default.Save(); 
+0

Но я не понимаю, как я кладу на разных языках там? Каждый текст должен иметь то же точное имя, чтобы его можно было отображать на страницах, используя его. Пытаясь понять ваш подход, текст «Hello World» должен храниться в n строках, где n - количество langauges, не так ли? – Aranha