public List <Scanner> AvailableScanners() { List <Scanner> scanners = new List <Scanner>(); List <string> cmdLineArgs = new List <string>() { "-f '{\"Id\":%i,\"Name\":\"%d\",\"FriendlyName\": \"%m\",\"Vendor\":\"%v\",\"Model\": \"%t\"}%n'" }; var shellStd = _shell.Exec(scanimage, cmdLineArgs); if (!String.IsNullOrEmpty(shellStd.stdout) && String.IsNullOrEmpty(shellStd.stderr) && String.IsNullOrEmpty(shellStd.exception)) { List <string> jsonList = shellStd.stdout.Split(new Char [] { '\n' }).ToList(); jsonList.ForEach(sline => { if (!String.IsNullOrEmpty(sline)) { scanners.Add(JsonSerializer.Deserialize <Scanner>(sline)); } }); } return(scanners); }