diff --git a/ICD.Common.Utils/ReflectionUtils.cs b/ICD.Common.Utils/ReflectionUtils.cs
index 314cb5f..54584f6 100644
--- a/ICD.Common.Utils/ReflectionUtils.cs
+++ b/ICD.Common.Utils/ReflectionUtils.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using ICD.Common.Properties;
using ICD.Common.Utils.Extensions;
using ICD.Common.Utils.IO;
#if SIMPLSHARP
@@ -237,6 +238,7 @@ namespace ICD.Common.Utils
///
///
///
+ [NotNull]
public static ConstructorInfo GetConstructor(Type type, params object[] parameters)
{
if (type == null)
@@ -245,13 +247,18 @@ namespace ICD.Common.Utils
if (parameters == null)
throw new ArgumentNullException("parameters");
- return
- type
+ ConstructorInfo info;
+
+ if(!type
#if SIMPLSHARP
- .GetCType()
+ .GetCType()
#endif
- .GetConstructors()
- .First(c => MatchesConstructorParameters(c, parameters));
+ .GetConstructors()
+ .Where(c => MatchesConstructorParameters(c, parameters))
+ .TryFirst(out info))
+ throw new ArgumentException("Couldn't find a constructor matching the given parameters.");
+
+ return info;
}
///