2017-05-24 1 views
2

내가는 Settings.settings에서

private int _Capacity = ConfigurationManager.AppSettings["FuelTankCapacity"]; 

까지 설정의 내 사용을 변경했습니다

편집 ...

private int _Capacity = Convert.ToInt32(ConfigurationManager.AppSettings["FuelTankCapacity"]); 

이를 설정의 데이터 유형을 변경 그러나 문제를 해결했지만 게으른 수정을 느낀다. 설정을 위해 정수형을 지정하는 방법이 있어야합니다.

원래의 질문에

내 윈폼 응용 프로그램에서 몇 가지 설정을 생성하는 데, 나는 그들 중 하나 몇 가지 문제가 있어요.

설정은 연료 탱크의 최대 용량을 지정하는 것으로, 값은 2000 (2000 리터)입니다.

불행히도 설정 값은 정수 값이어야하지만 지정된 값이 int가 아닌 문자열 값으로 읽혀집니다./INT32INT에 SerializeAs 값을 변경하면 문제가 해결되지 않는

<setting name="FuelTankCapacity" serializeAs="String"> 
    <value>2000</value> 
</setting> 

참고 :

다음은이 설정에 대한 App.config 코드입니다. Here's the Settings.settings screen

+0

지금까지 문제를 재현 할 수 없습니까? 속성 설정 마스크의 스크린 샷을 게시 할 수 있습니까? 변수가있는 질문이 있으십니까? –

+0

다음과 같은 설정을 사용합니까 : ** Properties.Settings.Default.FuelTankCapacity **? –

+0

app.config에 직접 입력하는 대신 프로젝트 속성 창을 통해 설정 파일을 추가하는 것이 좋습니다. 항상 작동하는 것으로 보입니다. 그런 다음 "속성"네임 스페이스를 통해 액세스합니다. – Wheels73

답변

1

나는 문제 AppSettingsMSDN

키로 나 인덱스 어느 액세스 할 수있는 관련된 문자열 키 및 문자열 값의 집합에 따라되는 유형 NameValueCollection 인 것이 추측.

따라서이 경로를 사용하면 필연적으로 문자열로 끝납니다.

Property 네임 스페이스 직접 Settings 변수를 통해 액세스 따라서 유형에 액세스 할 수 있습니다를 사용하여 당신이 그것을 지정한 같이

여기
int t = Properties.Settings.Default.FuelTankCapacity; 

있습니다 자세한 내용에 대한 using settings at runtime

당신은에 액세스 할 수 있습니다 읽기 전용으로 응용 프로그램 범위의 설정 값을 읽고 사용자 범위 설정 값을 읽고 쓸 수 있습니다. 설정은 속성 네임 스페이스를 통해 C#에서 사용할 수 있습니다.

+0

감사합니다.이 답변을 받아 들일 수있을뿐만 아니라 변환 문제를 해결했기 때문에뿐만 아니라 위의 코드와 달리 정확한 값을 제공합니다. – Ortund

+0

@Ortund 대단히 환영합니다. 다행히 도울 수있어. 질문하기 전에 변수가'ConfigurationManager'를 통해 접근 할 수 있다는 것을 몰랐습니다. 이 방법을 너무 잘 알고 있습니다. –