Это означает, что вы пытаетесь получить доступ к индексу массива, который недопустим, поскольку он не находится между границами.
Например, это инициализировало бы примитивный целочисленный массив с верхней границей 4 .
int intArray[] = new int[5];
Программисты подсчитываются с нуля. Таким образом, это, например, выбрало бы ArrayIndexOutOfBoundsException
, поскольку верхняя граница равна 4, а не 5.
intArray[5];
Существует на самом деле способ, которым я обнаружил....
Необходимо определить новый класс, наследовавшийся исходному разделу конфигурации следующим образом:
public class MyXmlCustomConfigSection : MyCustomConfigSection
{
public MyXmlCustomConfigSection (string configXml)
{
XmlTextReader reader = new XmlTextReader(new StringReader(configXml));
DeserializeSection(reader);
}
}
Можно затем инстанцировать объекта ConfigurationSection следующим образом:
string configXml = "<?xml version=\"1.0\"?><configuration>...</configuration>";
MyCustomConfigSection config = new MyXmlCustomConfigSection(configXml);
Надежда это помогает кому-то :-)
Я думаю, что Вы ищете, ConfigurationManager. OpenMappedExeConfiguration
Это позволяет Вам открывать конфигурационный файл, который Вы указываете с путем к файлу (перенесенный в ExeConfigurationFileMap)
, Если, что другой сказанный плакат верен, и Вы не хотите создавать совершенно новый XML-файл для тестирования, затем я рекомендовал бы, чтобы Вы поместили свои редактирования Конфигурации в сам Метод тестирования, затем запустили Ваши тесты против недавно измененных данных конфигурации.
Смотря на членов класса, я сказал бы, что ответ, вероятно, no*. Я не уверен, почему Вы хотели бы сделать это так или иначе, вместо того, чтобы создать Ваш собственный конфигурационный XML-файл.
*That не, исключая грязные отражательные взломы