瀏覽代碼

Fix #159 - Streamline TimeSpan parsing logic, get rid of the buggy code

Oleg Nenashev 8 年之前
父節點
當前提交
9399544ef5
共有 1 個文件被更改,包括 6 次插入14 次删除
  1. 6 14
      src/Core/WinSWCore/ServiceDescriptor.cs

+ 6 - 14
src/Core/WinSWCore/ServiceDescriptor.cs

@@ -126,16 +126,8 @@ namespace winsw
 
         private TimeSpan SingleTimeSpanElement(XmlNode parent, string tagName, TimeSpan defaultValue)
         {
-            var e = parent.SelectSingleNode(tagName);
-
-            if (e == null)
-            {
-                return defaultValue;
-            }
-            else
-            {
-                return ParseTimeSpan(e.InnerText);
-            }
+            var value = SingleElement(tagName, true);
+            return (value != null) ? ParseTimeSpan(value) : defaultValue;
         }
 
         private TimeSpan ParseTimeSpan(string v)
@@ -505,7 +497,7 @@ namespace winsw
         {
             get
             {
-                return SingleTimeSpanElement(dom.FirstChild, "waithint", Defaults.WaitHint);
+                return SingleTimeSpanElement(dom, "waithint", Defaults.WaitHint);
             }
         }
 
@@ -519,7 +511,7 @@ namespace winsw
         {
             get
             {
-                return SingleTimeSpanElement(dom.FirstChild, "sleeptime", Defaults.SleepTime);
+                return SingleTimeSpanElement(dom, "sleeptime", Defaults.SleepTime);
             }
         }
 
@@ -615,7 +607,7 @@ namespace winsw
         {
             get
             {
-                return SingleTimeSpanElement(dom.FirstChild, "resetfailure", Defaults.ResetFailureAfter);
+                return SingleTimeSpanElement(dom, "resetfailure", Defaults.ResetFailureAfter);
             }
         }
 
@@ -703,7 +695,7 @@ namespace winsw
         {
             get
             {
-                return SingleTimeSpanElement(dom.FirstChild, "stoptimeout", Defaults.StopTimeout);
+                return SingleTimeSpanElement(dom, "stoptimeout", Defaults.StopTimeout);
             }
         }