private static void SetPropertyValue(string name, string value, OpenCLDevice device) { foreach (PropertyInfo property in device.GetType().GetProperties()) { try { if (property.Name == name) { if (name.Equals(nameof(device.Name))) { if (!device.Name.Equals(value)) { break; } } if (name.Equals(nameof(device.ADLAdapterIndex))) { break; } if (property.PropertyType == typeof(bool)) { if (value == "False") { property.SetValue(device, false, null); break; } property.SetValue(device, true, null); break; } else if (property.PropertyType == typeof(string)) { property.SetValue(device, value, null); break; } else if (property.PropertyType == typeof(int)) { property.SetValue(device, Convert.ToInt32(value), null); break; } else if (property.PropertyType == typeof(byte)) { property.SetValue(device, Convert.ToByte(value), null); break; } else if (property.PropertyType == typeof(double)) { property.SetValue(device, Convert.ToDouble(value), null); break; } property.SetValue(device, Convert.ToInt32(value), null); break; } } catch { } } }