나는 늦었지만이 해결책을 발견하고 완벽하게 작동하기 때문에 나는 단지 공유하고 싶다.
그것의 모든 정의에 대한 당신의 ConfigurationElement
namespace Configuration.Helpers
{
public class ValueElement : ConfigurationElement
{
[ConfigurationProperty("name", IsKey = true, IsRequired = true)]
public string Name
{
get { return (string) this["name"]; }
}
}
public class ValueElementCollection : ConfigurationElementCollection
{
protected override ConfigurationElement CreateNewElement()
{
return new ValueElement();
}
protected override object GetElementKey(ConfigurationElement element)
{
return ((ValueElement)element).Name;
}
}
public class MultipleValuesSection : ConfigurationSection
{
[ConfigurationProperty("Values")]
public ValueElementCollection Values
{
get { return (ValueElementCollection)this["Values"]; }
}
}
}
그리고의 app.config 그냥 새로운 섹션 사용에 자신의 :
var section = (MultipleValuesSection) ConfigurationManager.GetSection("PreRequest");
var applications = (from object value in section.Values
select ((ValueElement)value).Name)
.ToList();
:
<configSections>
<section name="PreRequest" type="Configuration.Helpers.MultipleValuesSection,
Configuration.Helpers" requirePermission="false" />
</configSections>
<PreRequest>
<Values>
<add name="C++"/>
<add name="Some Application"/>
</Values>
</PreRequest>
을 그냥 같은 데이터를 검색 할 때
마침내 원래의 작성자 덕분에 post
그래서 ConfigurationManager.AppSettings.GetValues'의 포인트 (무엇)'그럼? – Yuck
@Yuck은 기본 NameValueCollection 클래스의 포인트에 질문합니다.이 클래스는 키당 여러 값을 지원하지만 실제로 키당 하나 이상을 설정할 수는 없습니다 (AppSettings는 내부적으로 set 인덱서를 사용해야합니다). 이것이 바로 문제가 아니라 단일 값을 반환하는 GetValues (). – fusi
단일 값만있는 경우 문자를 찾을 수 없음 오류가 발생합니까? –