Итак, я сделал обработчик пользовательского раздела для чтения информации из файла app-config, но когда я попытаюсь запустить его, я получаю следующую ошибку: ссылка на объект не установлена в экземпляр объект.App-config, объект обработчика пользовательского поля, возвращающийся как null
Я пытался решить эту проблему в течение двух дней, теперь не повезло
Вот посмотрите на мой код: App - конфиг
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!-- Configuration section-handler declaration area. -->
<configSections>
<sectionGroup name="propertyValuesGroup">
<section
name="propertyValues"
type="FlatFileTestCaseAutomater.ClaimHeaderSection,FlatFileFactory"
allowLocation="true"
allowDefinition="Everywhere"
/>
</sectionGroup>
<!-- Other <section> and <sectionGroup> elements. -->
</configSections>
<!-- Configuration section settings area. -->
<propertyValuesGroup>
<propertyValues>
<property>
<clear/>
<claimHeader name="txnNo" nullable="yes" dataType="int" maxLength="20" />
<claimHeader name="batchNo" nullable="yes" dataType="string" maxLength="20" />
</property>
</propertyValues>
</propertyValuesGroup>
</configuration>
Мой пользовательский раздел обработчика:
using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.Xml;
namespace FlatFileTestCaseAutomater
{
class ClaimHeaderSection : ConfigurationSection
{
[ConfigurationProperty("claimHeader")]
public ClaimHeaderElement ClaimHeaderProperty
{
get
{
return (ClaimHeaderElement)this["claimHeader"];
}
set
{ this["claimHeader"] = value; }
}
}
public class ClaimHeaderElement : ConfigurationElement
{
[ConfigurationProperty("name", DefaultValue = "", IsRequired = true)]
public String Name
{
get
{
return (String)this["name"];
}
set
{
this["name"] = value;
}
}
[ConfigurationProperty("nullable", DefaultValue = "yes", IsRequired = true)]
public String Nullable
{
get
{
return (String)this["nullable"];
}
set
{
this["nullable"] = value;
}
}
[ConfigurationProperty("dataType", DefaultValue = "", IsRequired = true)]
public String DataType
{
get
{
return (String)this["dataType"];
}
set
{
this["dataType"] = value;
}
}
[ConfigurationProperty("maxLength", DefaultValue = "", IsRequired = true)]
public string MaxLength
{
get
{ return (string)this["maxLength"]; }
set
{ this["maxLength"] = value; }
}
}
}
И называя объект:
FlatFileTestCaseAutomater.ClaimHeaderSection config =
(FlatFileTestCaseAutomater.ClaimHeaderSection)System.Configuration.ConfigurationManager.GetSection(
"propertyValuesGroup/propertyValues/property/");
Вы не упомянули язык программирования. Это похоже на C#. Предполагая, что это так, я предлагаю удалить один из существующих тегов и заменить его тегом C#. Это значительно увеличило бы видимость вашего вопроса и возможности быстро ответить на него. – Eran
Whoops, Thanks – Steve2056726