Foi*_*itn 5 c# xml version switch-statement
编辑:我已经做了一些关于此的研究,但未能找到解决方案!
我正在从XML文件中读取配置.为某些版本设置配置的布局.此版本位于XML的第一行,易于提取.
我想知道的是,实际解析此文件/获取另一种方法的最佳方法是什么,基于版本(所有4个元素,主要,次要,构建和修订).
现在我想出了这个:
switch (version.Major)
{
case 0:
switch (version.Minor)
{
case 0:
switch (version.Build)
{
case 0:
switch (version.Revision)
{
case 0:
return VersionNone(doc);
}
break;
}
break;
}
break;
}
throw new NotImplementedException();
Run Code Online (Sandbox Code Playgroud)
但我发现这种优雅(根本没有),我觉得有更好的方法可以做到这一点.
有谁可以提供帮助?
对于这样的事情,我很想建立一个行动词典
编辑:已更新以包含文档参数以响应来自OP的评论
Dictionary<string, Action<XmlDocument>> versionSpecificMethods = new Dictionary<string, Action<XmlDocument>>{
{"1.0.0.0", DoStuff1},
{"1.2.3.4", DoStuff2},
{"3.1.7.182", DoStuff3}};
private void RunMethodForVersion(string version, XmlDocument someXmlDoc)
{
var codeToRun = versionSpecificMethods[version];
codeToRun.Invoke(someXmlDoc);
}
private static void DoStuff1(XmlDocument doc)
{
// Insert user code here
}
Run Code Online (Sandbox Code Playgroud)