带有嵌套ConfigurationElementCollections的ConfigurationSection
希望我能把这个问题提交给这个网站的智囊团,有人会看到我的错误 我正在从事一个项目,其中电子邮件文本需要与各种内部类的属性中的信息进行“邮件合并”。电子邮件文本中的典型符号可能类似“{member name}、{mobile phone}等” 我想使用web.config中的ConfigurationSection定义符号和它们所在的类。以下是我建议的配置部分:带有嵌套ConfigurationElementCollections的ConfigurationSection,configurationsection,Configurationsection,希望我能把这个问题提交给这个网站的智囊团,有人会看到我的错误 我正在从事一个项目,其中电子邮件文本需要与各种内部类的属性中的信息进行“邮件合并”。电子邮件文本中的典型符号可能类似“{member name}、{mobile phone}等” 我想使用web.config中的ConfigurationSection定义符号和它们所在的类。以下是我建议的配置部分: <EmailSymbols> <SymbolClasses> <SymbolCl
<EmailSymbols>
<SymbolClasses>
<SymbolClass name="OHMember">
<Symbol name="Member Name" template="{0} {1}">
<add index="0" value="SMFirstName" />
<add index="1" value="SMLastName" />
</Symbol>
<Symbol name="Phone" template="{0}">
<add index="0" value="SMPhone" />
</Symbol>
</SymbolClass>
<SymbolClass name="Form">
<Symbol name="Contact Name" dataname="ContactName" />
</SymbolClass>
</SymbolClasses>
</EmailSymbols>
当我使用此语句分析节时:
symbols=ConfigurationManager.GetSection(“EmailSymbols”)作为EmailSymbols
我收到此错误消息:“无法识别的元素‘符号’。”
这只是.NET的一个领域,我不知道该怎么做。任何人能给予的任何帮助都将不胜感激
我的XML定义有意义吗?格式是否正确?我想要一个SymbolClass集合,每个集合包含一个Symbol集合,每个集合包含一个TemplateValue集合
再次感谢你的帮助
致以最良好的祝愿,
Jimmy您可以尝试覆盖
SymbolClass
类的Init()
方法:
protected override void Init()
{
base.Init();
this.AddElementName = "Symbol";
}
您还可以从类声明上方删除
[ConfigurationCollection(typeof(SymbolClass),AddItemName=“SymbolClass”)]
和其他类似的声明,因为它们什么也不做。您可以尝试覆盖SymbolClass的Init()
方法:
protected override void Init()
{
base.Init();
this.AddElementName = "Symbol";
}
您还可以从类声明上方删除[ConfigurationCollection(typeof(SymbolClass),AddItemName=“SymbolClass”)]
和其他人,因为他们什么也不做。您是否在配置文件顶部注册了该部分?是的。它一直解析到,然后我得到一个异常,错误是:“无法识别的元素‘Symbol’。”我已经用“AddItemName”声明了“Symbol”。如果我将Symbol添加为ConfigurationProperty,解析器将识别“Symbol”,但随后告诉我“Symbol”只能使用一次。它是重复的。这里有一个很好的答案:您是否在配置文件的顶部注册了该部分?是的。它一直解析到,然后我得到一个异常,错误是:“无法识别的元素‘Symbol’。”我已经用“AddItemName”声明了“Symbol”。如果我将Symbol添加为ConfigurationProperty,解析器将识别“Symbol”,但随后告诉我“Symbol”只能使用一次。它是重复的。这里有一个很好的答案: