Возможно, это не правильный путь, но, в любом случае, мне удалось использовать мой log4net.config
в appSettings.json
. Я помещаю свой ответ здесь, чтобы он мог помочь кому-то, если он не хочет использовать дополнительный конфигурационный файл для своего проекта.
То, что я сделал, похоже на преобразование моего XML в JSON и использование JSON в качестве строки в моем appSettings.json
, после чего я использую следующий код для чтения строки.
appSettings.json
{
"ConnectionStrings": {
"LoggerConfig": "Config string"
}
}
Json в XML Преобразование с использованием Newtonsoft.Json
string xmlElement = _configuration["ConnectionStrings:LoggerConfig"];
XmlDocument doc = (XmlDocument)JsonConvert.DeserializeXmlNode(xmlElement);
XmlConfigurator.Configure(logRepository, GenerateStreamFromString(doc.InnerXml));
Этот код используется для преобразования JSON в XML , но он не будет предоставлять содержимое XML как Элемент , поэтому я использовал его в качестве потока.
Для преобразования строки в поток я использовал следующий код.
public static Stream GenerateStreamFromString(string s)
{
var stream = new MemoryStream();
var writer = new StreamWriter(stream);
writer.Write(s);
writer.Flush();
stream.Position = 0;
return stream;
}
и работает нормально.
Здесь я использовал сначала мой XML to JSON
, а затем JSON to XML
в
используйте его как log4net config
, но если кто-то захочет, используйте XML
непосредственно в виде строки, так что это уменьшит некоторый код.