0
일부 사용자 범위 설정을 저장하기 위해 사용자 지정 설정 클래스를 만들려고합니다. 몇 달 전에이 작업을 수행했지만 정상적으로 작동했지만 모든 세부 정보를 기억할 수없고 더 이상 소스 코드에 액세스 할 수 없습니다.사용자 지정 부분 설정 파일을 만들려고합니다.
[Serializable]
public class Product
{
[XmlAttribute("Name")]
public string Name { get; set; }
[XmlAttribute("Id")]
public int Id { get; set; }
}
가 여기에 의 App.config 파일, 그리고 샘플 Product
을 포함
internal sealed partial class CustomSettings : global::System.Configuration.ApplicationSettingsBase
{
private static CustomSettings defaultInstance = ((CustomSettings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new CustomSettings())));
public static CustomSettings Default
{
get
{
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
public global::System.Collections.Generic.List<global::LearningProject.Types.Product> Products
{
get
{
return ((global::System.Collections.Generic.List<global::LearningProject.Types.Product>)(this["Products"]));
}
set
{
this["Products"] = value;
}
}
}
Product.cs을
CustomSettings.cs : 여기에 지금까지 가지고 무엇을 :
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="LearningProject.Settings1" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
<section name="LearningProject.CustomSettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
<userSettings>
<LearningProject.CustomSettings>
<setting name="Products" serializeAs="Xml">
<ArrayOfProduct>
<Product>
<Name>Product1</Name>
<Id>ProductID</Id>
</Product>
</ArrayOfProduct>
</setting>
</LearningProject.CustomSettings>
</userSettings>
</configuration>
, 지금 나는 Products
의 목록을하려고 할 때 null
수 :
List<Product> products = CustomSettings.Default.Products;
. 또한 Settings1.settings
(VS에 의해 생성됨)이 이미 존재하며, 내 CustomSettings
클래스는 기본 자동 생성 설정 파일에 메소드를 추가하는 것입니다. 나는 누군가가 이것을 한 적이 있는지 궁금했다. 어떤 도움을 주셔서 감사합니다.
null을 내가 수동으로'app.config'에 추가 할 때 null이되지만, 코드를 통해 추가하는 것은 효과가있는 것처럼 보입니다.하지만 여전히'app.config'에서 볼 수는 없습니다. . 어떤 생각? – PoweredByOrange
내 대답을 수정했습니다 : % appdatalocal % \ project_name .. \ user.config에있는 tag.Local config을 잊어 버렸습니다. 완료되면 삭제하십시오. 그렇지 않으면 설정이 적용됩니다. –
cdmnk
그러나 app.config에서 설정을 직접 입력하려면 어떻게해야합니까? 이 달 전에 처음 만들었을 때 모든 설정은 app.config에 기록되거나 읽혀졌습니다. – PoweredByOrange