master
bicijinlian 2 years ago
parent 813ef34469
commit 1b60d5539e

@ -49,7 +49,7 @@ namespace OptionStudy.UnitApp
public override void Load(Stream stream) public override void Load(Stream stream)
{ {
var parser = new YamlFileParser(); var parser = new YamlFileParser();
Data =parser.Parse(stream); Data = parser?.Parse(stream)??new Dictionary<string, string?>();
} }
} }
@ -73,11 +73,11 @@ namespace OptionStudy.UnitApp
/// </summary> /// </summary>
public class YamlFileParser public class YamlFileParser
{ {
private readonly IDictionary<string, string> _data = new SortedDictionary<string, string>(StringComparer.OrdinalIgnoreCase); private readonly IDictionary<string, string?> _data = new SortedDictionary<string, string?>(StringComparer.OrdinalIgnoreCase);
private readonly Stack<string> _context = new Stack<string>(); private readonly Stack<string> _context = new Stack<string>();
private string _currentPath; private string? _currentPath;
public IDictionary<string, string> Parse(Stream input) public IDictionary<string, string?> Parse(Stream input)
{ {
_data.Clear(); _data.Clear();
_context.Clear(); _context.Clear();
@ -99,7 +99,7 @@ namespace OptionStudy.UnitApp
private void VisitYamlNodePair(KeyValuePair<YamlNode, YamlNode> yamlNodePair) private void VisitYamlNodePair(KeyValuePair<YamlNode, YamlNode> yamlNodePair)
{ {
var context = ((YamlScalarNode)yamlNodePair.Key).Value; var context = ((YamlScalarNode)yamlNodePair.Key).Value??string.Empty;
VisitYamlNode(context, yamlNodePair.Value); VisitYamlNode(context, yamlNodePair.Value);
} }
@ -123,7 +123,7 @@ namespace OptionStudy.UnitApp
{ {
//a node with a single 1-1 mapping //a node with a single 1-1 mapping
EnterContext(context); EnterContext(context);
var currentKey = _currentPath; var currentKey = _currentPath??string.Empty;
if (_data.ContainsKey(currentKey)) if (_data.ContainsKey(currentKey))
{ {

Loading…
Cancel
Save