코드에서 ConfigurationPropertyAttribute
이름을 세 번 반복하면 정말 귀찮습니다.
맞춤법 오류나 놓기/붙여 넣기 속성을 놓치기 쉽고 이름의 한 인스턴스를 업데이트하는 것을 잊어 버리기 쉽습니다.ConfigurationPropertyAttribute를 사용하여 속성 이름을 3 번 반복하지 마십시오.
상수 선언은 이러한 문제 중 하나만 해결합니다. 더 좋은 방법이 있습니까?
나는 반사를 시도했지만, 속성을 열거하는 것이 훨씬 더 어려워 보이고 더 못 생겼습니다. 내가 DRY 알고
[ConfigurationProperty("port", DefaultValue = (int)0, IsRequired = false)]
[IntegerValidator(MinValue = 0, MaxValue = 8080, ExcludeRange = false)]
public int Port
{
get
{
return (int)this["port"];
}
set
{
this["port"] = value;
}
}
그냥 원칙 자주, 현실 세계에서, 원칙은 실용주의에 방법을 제공해야합니다. 그러나 누군가가 더 깨끗한 방법을 가지고 있다고 확신합니까?
+1 : 나는 항상 그렇게하는 것을 무시합니다 ;-) 이것은 또한 (런타임 동안) 다음에 선언적 방법으로 더 빠른 것으로 (즉, 왜 WCF/System.ServiceModel 구성을 위해 사용했는지에 대한 이점이 있습니다 _extensive_입니다. - 죄송합니다. 내가 읽은 곳을 기억하지 못합니다.) 아마도 실제로는 ConfigurationProperty를 컬렉션에 추가/제거하지만 코드에서 get/set 속성 만 제공하는 "잊어 버림"문제가 있습니다. 글쎄요, 어느 쪽의 방법으로도, 결국 당신이하고있는 일을 알고 올바른 "장인 정신"을 가져야 만합니다. –