ArgumentException: use system-supplied message if message is null (#25115)
authorHerman Eldering <HermanEldering@users.noreply.github.com>
Sun, 23 Jun 2019 02:52:42 +0000 (04:52 +0200)
committerJan Kotas <jkotas@microsoft.com>
Sun, 23 Jun 2019 02:52:42 +0000 (19:52 -0700)
Enable using a system-supplied message while also providing an argument/parameter name by passing in a null message. Made to match the behavior of FileNotFoundException.

src/System.Private.CoreLib/shared/System/ArgumentException.cs

index a803b1a..33ff932 100644 (file)
@@ -78,6 +78,8 @@ namespace System
         {
             get
             {
+                SetMessageField();
+                
                 string s = base.Message;
                 if (!string.IsNullOrEmpty(_paramName))
                 {
@@ -88,6 +90,14 @@ namespace System
             }
         }
 
+        private void SetMessageField()
+        {
+            if (_message == null && HResult == System.HResults.COR_E_ARGUMENT) 
+            {
+                _message = SR.Arg_ArgumentException;
+            }
+        }
+        
         public virtual string? ParamName
         {
             get { return _paramName; }