Так что я совершенно не привык к использованию файла app-config, я пытаюсь создать собственный обработчик конфигурации, чтобы я мог читать несколько значений из одного и того же ключа, я следил за документацией на веб-сайте Microsoft, но ive сталкиваются с проблемой.Проблемы с обработчиком раздела настраиваемой конфигурации
Каждый раз, когда я пытаюсь запустить свой код, он выдает эту ошибку
«Непризнанный атрибут 'тип данных' Обратите внимание, что имена атрибутов чувствительны к регистру (C: \ Users \ stephen.carmody \ Desktop \ FlatFileFactory - Copy.. \ FlatFileFactory \ Bin \ Debug \ FlatFileFactory.vshost.exe.Config строка 21)»
Это только кажется, признать, первые два значения в элементе, то третий„тип данных“бросает ошибку
Вот является посмотрите мой конфигурационный файл
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!-- Configuration section-handler declaration area. -->
<configSections>
<sectionGroup name="propertyValuesGroup">
<section
name="propertyValues"
type="FlatFileTestCaseAutomater.CustomConfigurationSectionHandler,FlatFileFactory"
allowLocation="true"
allowDefinition="Everywhere"
/>
</sectionGroup>
<!-- Other <section> and <sectionGroup> elements. -->
</configSections>
<!-- Configuration section settings area. -->
<propertyValuesGroup>
<propertyValues>
<cHeaderProperty name="txnNo" nullable="yes" datatype="int" maxlength="" />
</propertyValues>
</propertyValuesGroup>
</configuration>
Вот посмотрите на мой пользовательский класс обработчика:
namespace FlatFileTestCaseAutomater
{
class CustomConfigurationSectionHandler : ConfigurationSection
{
[ConfigurationProperty("cHeaderProperty")]
public CHeaderPropertyElement Property
{
get
{
return (CHeaderPropertyElement)this["cHeaderProperty"];
}
set
{ this["cHeaderProperty"] = value; }
}
}
public class ClaimHeaderElement : ConfigurationElement
{
[ConfigurationProperty("name", DefaultValue = "", IsRequired = true)]
[StringValidator(InvalidCharacters = "[email protected]#$%^&*()[]{}/;'\"|\\", MinLength = 1, MaxLength = 60)]
public String Name
{
get
{
return (String)this["name"];
}
set
{
this["name"] = value;
}
}
[ConfigurationProperty("dataType", DefaultValue = "", IsRequired = true)]
[StringValidator(InvalidCharacters = "[email protected]#$%^&*()[]{}/;'\"|\\", MinLength = 1, MaxLength = 60)]
public String DataType
{
get
{
return (String)this["dataType"];
}
set
{
this["dataType"] = value;
}
}
[ConfigurationProperty("maxLength", DefaultValue = int.MaxValue, IsRequired = false)]
// [IntegerValidator(ExcludeRange = false, MaxValue = 24, MinValue = 0)]
public int MaxLength
{
get
{ return (int)this["maxLength"]; }
set
{ this["maxLength"] = value; }
}
}
}
Здесь является фрагмент кода, где разрыв происходит во время отладки:
FlatFileTestCaseAutomater.CustomConfigurationSectionHandler config =
(FlatFileTestCaseAutomater.CustomConfigurationSectionHandler)System.Configuration.ConfigurationManager.GetSection(
"propertyValuesGroup/propertyValues");
Я знаю подобную нить была размещена раньше, но Я был здесь уже несколько часов без везения
Я могу ошибаться, но ваши имена в конфигурации не кажется, того же «дела», они все в нижнем регистре (тип данных и максимальная длина), опечатка при вставке здесь? – NSGaga
Тот же случай, что и что? Методы? Я попытался сделать их одинаковыми, тот же результат – Steve2056726