문제

Key-Value 쌍을 app.config 파일에 저장할 수있는 구성 섹션을 만들어야하며 유형에 관계없이 키 값 쌍을 추가 할 수 있습니다. 또한 값이 원래 유형을 유지하는 것이 중요합니다. 다음 인터페이스를 확장해야합니다

public interface IPreferencesBackend
{
    bool TryGet<T>(string key, out T value);
    bool TrySet<T>(string key, T value); 
}

런타임에 다음과 같은 말을 할 수 있습니다.

My.Foo.Data data = new My.Foo.Data("blabla");
Pref pref = new Preferences();
pref.TrySet("foo.data", data); 
pref.Save();

My.Foo.Data date = new My.Foo.Data();
pref.TryGet("foo.data", out data);

System.Configuration.Configuration.AppSettings를 사용했지만 키 값 쌍을 문자열 배열에 저장하는 문제의 문제입니다.

필요한 것은 System.configuration.configurationsection을 구현하는 것입니다. 여기서 개별 설정이 직렬화되는 방식을 제어 할 수 있습니다. Visual Studio에 의해 생성 된 설정이이를 수행한다는 것을 알았습니다. 반사를 사용하여 모든 설정 키를 생성합니다. 내가 필요한 것은이 런타임과 동적으로 수행하는 것입니다.

[System.Configuration.UserScopedSettingAttribute()]
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.Configuration.DefaultSettingValueAttribute("2008-09-24")]
public global::System.DateTime DateTime {
   get {
        return ((global::System.DateTime)(this["DateTime"]));
       }
   set {
        this["DateTime"] = value;
       }
 }
도움이 되었습니까?

해결책 2

Codeproject.com에서 이러한 문제를 자세히 설명하는 두 가지 훌륭한 기사를 찾았습니다.

.NET 2.0 구성의 미스터리를 풀기http://www.codeproject.com/kb/dotnet/mysteriesofconfiguration.aspx

사용자 설정이 적용됩니다http://www.codeproject.com/kb/dotnet/user_settings.aspx?display=printall&fid=1286606&df=90&mpp=25&noise=3&sort=position&view=quick&select=2647446&fr=26

다른 팁

Phil Haack은 훌륭한 기사를 가지고 있습니다 사용자 정의 구성 섹션 작성

그것이 당신이 ASCII 텍스트 파일 - 문자열로 얻는 전부입니다. :-)

그러나 "값"문자열을 인코딩하여 다음과 같은 유형 매개 변수를 포함시킬 수 있습니다.

<key="myParam" value="type, value" />

예를 들어:

<key="payRate" value="money,85.79"/>

그런 다음 앱을 전환하도록하십시오 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top