Каждый файл ресурса имеет файл с выделенным кодом, который используется для объявления элементов ресурса как статических свойств.Кроме того, многие средства автоматической генерации кода используются инструментами, такими как Visual Studio, для синхронизации между данными редактора xml / resource и кодом, стоящим за файлом.Разделение ресурса на несколько файлов может быть возможным, но последствия автоматической генерации кода позже могут вызвать даже больше проблем, чем простое объединение ваших изменений.Возможное решение - создать разные файлы ресурсов.Затем создайте класс, который хранит коллекцию ResourceManager
экземпляра для каждого менеджера ресурсов.Примерно так:
public class ResourceWrapper
{
private ICollection<ResourceManager> resourceManagers;
public ResourceWrapper(IEnumerable<ResourceManager> managers)
{
resourceManagers = new List<ResourceManager>(managers);
}
public string GetString(string key)
{
foreach (var resourceManager in resourceManagers)
{
string res = resourceManager.GetString(key);
if (res != null)
{
return res;
}
}
return null;
}
public string GetString(string key, CultureInfo culture)
{
foreach (var resourceManager in resourceManagers)
{
string res = resourceManager.GetString(key, culture);
if (res != null)
{
return res;
}
}
return null;
}
}
Вам нужно только получить все ресурсы и передать их конструктору.Возможно, вы захотите сохранить экземпляр оболочки после того, как он будет создан, чтобы избежать создания менеджера ресурсов для каждого файла ресурсов - статический файл подойдет.Единственная проблема с приведенным выше кодом заключается в том, что нет гарантии, что 2 или более файла ресурсов определяют один и тот же ключ.Если это произойдет, код вернет только первое совпадение.