Я пытаюсь научиться как использовать класс ConfigurationSection. Раньше я использовал IConfigurationSectionHandler, но сообщил, что он обесценился. d, парень, я пробую "правильный" путь. Моя проблема в том, что он всегда возвращает null.
У меня есть консольное приложение и DLL.
class Program
{
static void Main(string[] args)
{
StandardConfigSectionHandler section = StandardConfigSectionHandler.GetConfiguration();
string value = section.Value;
}
}
app config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="ConfigSectionGroup">
<section name="ConfigSection" type="Controller.StandardConfigSectionHandler, Controller" />
</sectionGroup>
</configSections>
<ConfigSectionGroup>
<ConfigSection>
<test value="1" />
</ConfigSection>
</ConfigSectionGroup>
</configuration>
обработчик раздела в DLL:
namespace Controller
{
public class StandardConfigSectionHandler : ConfigurationSection
{
private const string ConfigPath = "ConfigSectionGroup/ConfigSection/";
public static StandardConfigSectionHandler GetConfiguration()
{
object section = ConfigurationManager.GetSection(ConfigPath);
return section as StandardWcfConfigSectionHandler;
}
[ConfigurationProperty("value")]
public string Value
{
get { return (string)this["value"]; }
set { this["value"] = value; }
}
}
}
Какие бы значения я ни пробовал для "ConfigPath" it вернет null или выдаст ошибку, сообщающую, что "test" - нераспознанный элемент. Значения, которые я пробовал:
У меня есть класс, определенный так:
public class Location
{
public Location()
{
Meetings = new List<Meeting>();
}
public virtual int ID { get; private set; }
public virtual string Name { get; set; }
public virtual ICollection<Meeting> Meetings { get; set; }
}
И таблица базы данных для этого - просто «местоположения» с идентификатором и свойством Name.
У некоторых других таблиц «встреч» есть внешний ключ к этой таблице. И это выходит за рамки того, с чем я пытаюсь работать в этом примере, но я думаю, что это приводит к сбою PetaPoco…
Я пытаюсь использовать PetaPoco для вставки нового местоположения в базу данных следующим образом:
public int AddLocation(string name)
{
var newLocation = new Location{Name = name};
var db = new PetaPoco.Database(_connectionString);
db.Insert("locations", "ID", newLocation);
return newLocation.ID;
}
И это вызывает ошибку, например:
{"Нет сопоставления с типом объекта System.Collections.Generic.List`1 [[NHRepoTemplate.sampleUsage.sampleModel.Meeting, NHRepoTemplate, версия = 1.0.0.0, Культура = нейтральный, PublicKeyToken = null]] известному управляемому провайдеру type. "}
Мне кажется, что существование дочерней коллекции приводит к тому, что PetaPoco не может выполнить вставку, но ... должен быть способ сказать ему" игнорировать "это, верно?