を変更することができれば
//Initialize
ConfigReader.SetFrameworkSettings();
public class ConfigReader
{
public static void SetFrameworkSettings()
{
XPathItem aut;
string strFilename = Environment.CurrentDirectory.ToString() + "\\Config\\GlobalConfig.xml";
FileStream stream = new FileStream(strFilename, FileMode.Open);
XPathDocument document = new XPathDocument(stream);
XPathNavigator navigator = document.CreateNavigator();
//Get XML Details and pass it in XPathItem type variables
aut = navigator.SelectSingleNode("AutoFramework/RunSettings/AUT");
Settings.AUT = aut.Value.ToString();
}
}
public class Settings
{
public static string AUT { get; set; }
}
は素晴らしいだろう。私はこの
JsonSerialization
ヘルパークラスを使用しているこれらのメソッドを使用するには
public static class SettingsConverter
{
public static string FromXmlToJson(string xml)
{
Settings settings = null;
// read your xml file and assign values to the settings object
// now you can "serialize" settings object into Json
return JsonSerialization.Serialize(settings);
}
public static string FromJsonToXml(string json)
{
Settings settings = JsonSerialization.Deserialize<MeSettings>(json);
// save settings using your "xml" serialization
return xmlString; // return xml string
}
}
:
public static class JsonSerialiation
{
public static string Serialize<T>(T obj)
{
using (MemoryStream stream = new MemoryStream())
{
using (JsonTextWriter writer = new JsonTextWriter(new StreamWriter(stream))
{
JsonSerializer serializer = new JsonSerializer();
serializer.Serializer(writer, obj);
writer.Flush();
stream.Position = 0;
using (StreamReader reader = new StreamREader(stream))
{
return reader.ReadToEnd();
}
}
}
}
public static T Deserialize<T>(string jsonString)
{
using (JsonTextReader reader = new JsonTextReader(new StringReader(str)))
{
JsonSerializer serializer = new JsonSerializer();
return serializer.Deserialize<T>(reader)
}
}
}
上記の例では、あなたから必要とあなたには、いくつかの基本的なSettingsConverter
が最初に確認する必要がありますあなたの現在のコードを「再利用」する インスタンスに
public class Settings
{
public static string AUT { get; set; }
}
:静的からあなたSettings
クラスを変更するには
を
public class Settings
{
public string AUT { get; set; }
}
静的であることが望ましい場合は、
が
JObject obj = JObject.Parse(jsonString);
Settings.AUT = obj.SelectToken("AUT").Value<string>();
あなたはいつもの代わりにあなたが大きな問題あなたのコードの上に持っているより少ない制御私が作ったJsonSerialization
ヘルパークラスのが、私の意見ではJsonConvert.Serialize<T>()
とJsonConvert.Deserialize<T>()
メソッドを使用することができます:あなたはNewtonsoft.Json
ライブラリからJObject
を使用する必要がありますされます。
私はJSON.NETについて次の答えが正しい解決策を指すことができると思います:http://stackoverflow.com/a/17788118/3531995 JSON.NETライブラリにストリームを渡すことはできますが、 '' aut = navigator.SelectSingleNode( "AutoFramework/RunSettings/AUT"); ''を更新する必要があります。これはXML固有のものです。 – thomasvdb
@thomasvdb読み込みます! tnx – Dymond