-1
私はC#でプログラムを開発しており、初めてカスタム構成を使用します。C#カスタム構成が読み取られない
私のプログラムは正しく起動していますが、設定ファイルが読み込まれていないようです。
これが私の "app.configを" 設定ファイル
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="Files" type="Initialisation.FilesSection, Initialisation" >
<section name="Source" type="Initialisation.SourceElement, Initialisation" />
<section name="List" type="Initialisation.ListElementCollection, Initialisation" />
<section name="File" type="Initialisation.FileElement, Initialisation" />
</sectionGroup>
</configSections>
<Files>
<Source path="\\192.168.21.6\tmp\" />
<List>
<File name="Adobe Reader" file="readerdc_fr_xa_crd_install.exe" default="true" />
<File name="Adobe Flash" file="flashplayer27pp_xa_install.exe" default="false" />
<File name="Java" file="java.exe" default="true" />
</List>
</Files>
</configuration>
であり、これは私はこのような値を取得しようとしていたファイル
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Initialisation
{
public class Files
{
//private static FilesSection _config;
private Files()
{
}
public static FilesSection Config
{
get
{
/*if (_config == null)
{
_config = global::System.Configuration.ConfigurationManager.GetSection("Files") as FilesSection;
}
return _config;*/
return ((FilesSection)(ConfigurationManager.GetSection("Files")));
}
}
}
public class FilesSection : System.Configuration.ConfigurationSection
{
[System.Configuration.ConfigurationPropertyAttribute("Source")]
public SourceElement Source
{
get
{
return ((SourceElement)(this["Source"]));
}
}
[System.Configuration.ConfigurationPropertyAttribute("List")]
[System.Configuration.ConfigurationCollectionAttribute(typeof(FileElement), AddItemName = "File")]
public ListElementCollection List
{
get
{
return ((ListElementCollection)(this["List"]));
}
}
}
public class SourceElement : System.Configuration.ConfigurationElement
{
[System.Configuration.ConfigurationPropertyAttribute("path", IsRequired = true)]
public string Path
{
get
{
return ((string)(this["path"]));
}
set
{
this["path"] = value;
}
}
}
public class ListElementCollection : System.Configuration.ConfigurationElementCollection
{
public FileElement this[int i]
{
get
{
return ((FileElement)(this.BaseGet(i)));
}
}
protected override System.Configuration.ConfigurationElement CreateNewElement()
{
return new FileElement();
}
protected override object GetElementKey(System.Configuration.ConfigurationElement element)
{
return ((FileElement)(element)).Name;
}
}
public class FileElement : System.Configuration.ConfigurationElement
{
[System.Configuration.ConfigurationPropertyAttribute("name", IsRequired = true)]
public string Name
{
get
{
return ((string)(this["name"]));
}
set
{
this["name"] = value;
}
}
[System.Configuration.ConfigurationPropertyAttribute("file", IsRequired = true)]
public string File
{
get
{
return ((string)(this["file"]));
}
set
{
this["file"] = value;
}
}
[System.Configuration.ConfigurationPropertyAttribute("default", IsRequired = false, DefaultValue = false)]
public bool Default
{
get
{
return ((bool)(this["default"]));
}
set
{
this["default"] = value;
}
}
}
}
を管理するクラスです:
FilesSection fs = Files.Config;
SourceElement se = fs.Source;
string path = se.Path;
MessageBox.Show(path);
しかし、すべての変数(fs、seおよびpath)はnullです。
私は多くの記事を読んで、私はすでに多くの解決策を試してみました:/
は、それが動作するようになりました、あなたの助けをありがとう! –