ConfigurationValidatorAttribute
을 쓰거나 다른 방법으로 Prop1
과 Prop2
을 모두 사용할 수 있습니까?구성 요소에 두 속성 중 하나를 확인하거나 그렇지 않은 방법을 확인하는 방법은 무엇입니까?
내가 domain3
요소가 둘 다 Prop1
및 Prop2
또는 없음이 있어야합니다 런타임 예외 때문에 싶어 Domains
를 얻기 위해 노력하지만,뿐만 아니라 한 것이다 때 다음과 같은 설정 파일에서
수정 됨 그들의!
마찬가지로 IsRequired
은 런타임에서 확인되며 요소에 Name
속성이없는 경우 오류가 발생합니다.
<MySection>
<Domains>
<Domain Name="domain1" Prop1="1" Prop2="4" />
<Domain Name="domain2" />
<Domain Name="domain3" Prop1="1" />
</Domains>
</MySection>
public class ConfigElement : ConfigurationElement
{
[ConfigurationProperty("Name", IsRequired = true)]
public string Name
{
get { return (string)this["Name"]; }
set { this["Name"] = value; }
}
[ConfigurationProperty("Prop1")]
public int Prop1
{
get { return (int)this["Prop1"]; }
set { this["Prop1"] = value; }
}
[ConfigurationProperty("Prop2")]
public int Prop2
{
get { return (int)this["Prop2"]; }
set { this["Prop2"] = value; }
}
}
이 유효성 검사가 실패한 경우 원하는 동작은 무엇입니까? 런타임 예외? –
app.config는 나중에 변경 될 수 있기 때문에 컴파일 오류가 발생한다고 생각하지 않습니다. 그러나 xsd 유효성 검사를 추가 할 수 있습니다. http://stackoverflow.com/questions/334473/providing-intellisense-xsd-validation-to-configsections를 참조하십시오. – Maarten
@dtryon, 내 게시물을 편집했습니다. 예,'IsRequeired'와 비슷한 런타임 예외를 원합니다, 예를 들어, excetpion을 – theateist