private static string CreateMessage(ASICameraDll.ASI_ERROR_CODE errorCode, MethodBase callingMethod, object[] parameters) { StringBuilder bld = new StringBuilder(); bld.AppendLine("Error '" + errorCode + "' from call to "); bld.Append("ASI" + callingMethod.Name + "("); var paramNames = callingMethod.GetParameters().Select(x => x.Name); foreach (var line in paramNames.Zip(parameters, (s, o) => string.Format("{0}={1}, ", s, o))) { bld.Append(line); } bld.Remove(bld.Length - 2, 2); bld.Append(")"); return(bld.ToString()); }
public ASICameraException(ASICameraDll.ASI_ERROR_CODE errorCode, MethodBase callingMethod, object[] parameters) : base(CreateMessage(errorCode, callingMethod, parameters)) { }
public ASICameraException(ASICameraDll.ASI_ERROR_CODE errorCode) : base(errorCode.ToString()) { }