Merge pull request #428 from NextTurn/builder

Use StringBuilder
pull/450/head
Oleg Nenashev 2020-03-11 11:17:27 +01:00 committed by GitHub
commit 12f98a7c70
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 5 deletions

View File

@ -4,6 +4,7 @@ using System.Diagnostics;
using System.Management;
#endif
using System.Reflection;
using System.Text;
using DynamicProxy;
#if FEATURE_CIM
using Microsoft.Management.Infrastructure;
@ -276,23 +277,23 @@ namespace WMI
if (method.Name == nameof(Win32Services.Select))
{
// select method to find instances
string query = "SELECT * FROM " + this.className + " WHERE ";
StringBuilder query = new StringBuilder("SELECT * FROM ").Append(this.className).Append(" WHERE ");
for (int i = 0; i < arguments.Length; i++)
{
if (i != 0)
query += " AND ";
query.Append(" AND ");
query += ' ' + Capitalize(methodParameters[i].Name!) + " = '" + arguments[i] + "'";
query.Append(' ').Append(Capitalize(methodParameters[i].Name!)).Append(" = '").Append(arguments[i]).Append('\'');
}
#if FEATURE_CIM
// TODO: support collections
foreach (CimInstance cimInstance in this.cimSession.QueryInstances(CimNamespace, "WQL", query))
foreach (CimInstance cimInstance in this.cimSession.QueryInstances(CimNamespace, "WQL", query.ToString()))
{
return ProxyFactory.GetInstance().Create(new InstanceHandler(this.cimSession, cimInstance), method.ReturnType, true);
}
#else
using ManagementObjectSearcher searcher = new ManagementObjectSearcher(this.wmiClass.Scope, new ObjectQuery(query));
using ManagementObjectSearcher searcher = new ManagementObjectSearcher(this.wmiClass.Scope, new ObjectQuery(query.ToString()));
using ManagementObjectCollection results = searcher.Get();
// TODO: support collections
foreach (ManagementObject wmiObject in results)