2017-02-20 1 views
0

내가 어떤 모양을하고 설정C# 변경 모든 설정 파일은 i는 사용자에 대해이 저장

int X 
int Y 
bool FirstRun 

가 포함 된 각각의 파일 만든 값 그들은 프로그램을 시작합니다. 그리고 나는 그들을 표준 값으로 재설정하기위한 버튼을 추가 할 것이라고 생각했습니다.

그때

list<Type> settingsList = new list<Type>(); 

settingsList.Add(typeof(SettingsFileName)); 

와 함께 목록에 저장하는 방법을 발견하지만, 거기에 그들 모두를 변경하기 위해 foreach 루프를 만들 수있는 방법입니다 또는 내가 어떻게해야합니까 그들 모두에게 수동적일까요?

--EDIT--

좌측은 최소 설정 파일 내가

AdminKontoplanSettings.Default.X = this.Location.X; 
AdminKontoplanSettings.Default.Y = this.Location.Y; 
AdminKontoplanSettings.Default.Height = this.Height; 

AdminKontoplanSettings.Default.Save(); 
+0

그것은 아니다 : 당신이 버튼을 onclick 방법을 "다시 설정"에

var mySettingList = new List<IMySettings> {AdminKontoplanSettings.Default, MySetting.Defalut, AnotherSettings.Default ....} 

다음 당신이하고있는 일과 그 문제가 무엇인지 명확히하십시오. 어떻게 설정을 저장합니까? 이 목록에 뭐가 들어 있니? 왜'Type'을 사용합니까? 더 많은 코드 표시 –

+0

파일을 저장하는 방법뿐만 아니라 최소 설정으로 설정 파일의 그림을 추가했습니다. 코드에 관해서는.그게 내가 할 수있는 올바른 방법이 아니면 내가 알지 못하는 목록에 설정 파일을 저장할 수있는 유일한 방법이었다 – Drago87

+0

일반적으로 각 개별 창에 대해이 정보를 저장하는 설정이 필요합니다. 따라서 for-each는별로 유용하지 않을 것입니다. 설정 이름을 찾는 데 도움이되지 않습니다. 어쩌면 당신이 그 (것)들에게 영리한 이름을, 모양 이름 접두어 같이주는 경우에. 이렇게 코드를 작성하는 것은별로 중요하지 않습니다. 그냥 창을 이동하고 닫으십시오. –

답변

1

설정 파일을 반복하려는 경우 인터페이스를 만들고 해당 클래스에서 설정 클래스를 상속 받아야합니다.
설정 클래스는 partial classes이며 디자이너가 제어하는 ​​부분과 디자이너가 제어하는 ​​부분이 있습니다 (디자이너에서 부분 코드의이 부분으로 이동하는 데 "코드보기"버튼이 있음).

internal interface IMySettings 
{ 
    int X { get; set; } 
    int Y { get; set; } 
    bool FirstRun { get; set; } 
    void Save(); 
} 

Save은 반복 할 때 구원의 작업을 허용하는 것입니다 : 같은

은 그래서 인터페이스를 볼 수있다.

internal sealed partial class MySettings : IMySettings 

그리고이하는 List<IMySettings> 필드에 모든 설정을로드하고 그들을 통해 반복 : 같은

귀하의 설정 파일은 다음과 같을 것입니다.
까다로운 부분은 목록에로드하는 것, 하나는 반사 또는 손으로 작업을 수행합니다

foreach (var setting in this.mySettingList) 
{ 
    setting.X = 0; 
    setting.Y = 0; 
    setting.FirstRun = true; 
    setting.Save(); 
} 
+0

이것은 내가 찾고있는 것이어야합니다. 그것이 가능하다면 settingsfiles를 볼 필요가있다. – Drago87

0

으로 파일을 저장할 모든 설정 파일 Settings File Example

현재로서는 오른쪽이 포함됩니다 내가 해요 당신이 원하는 것이 확실하지는 않지만 도움이 될 것이라고 생각합니다.

foreach (Type t in settingList) 
{ 
    t.x = 0; 
    t.y = 0; 
} 

서식의 모든 위치가 변경됩니다.

+0

그게 내가 원하는하지만''tX = 0'을 시도 할 때''System.Type '에'X '에 대한 정의와 확장 메서드'X '에 대한 정의가 포함되어 있지 않습니다. 'System.Type'형식의 인수를 찾을 수 있습니다 (사용 지시문이나 어셈블리 참조가 누락 되었습니까?) ' – Drago87

+0

질문이 있습니다. SettingsFileName은 무엇입니까? 그게 속성이야? 또는 객체? 우리가 당신의 코드를 가질 수 있을까요? 그것은 당신의 문제를 찾는 데 도움이 될 것입니다;) – Darinoke

+0

SettingFileName 그저입니다. 설정 파일입니다. 나는 하나의 그림으로 포스트를 업데이트 할 것이다. 코드에 관해서는 아직 아무 것도 없습니다. '목록 settingsList = 새 목록 (); settingsList.Add (typeof (SettingsFileName));'내가 설정 파일을 목록에 저장하는 유일한 방법입니다. 내가 어떻게해야하는지, 아니면 더 좋은 방법이 있는지 나는 모른다. – Drago87