Advertisement
parabola949

ExpandoObject with dynamic properties created at run time

Feb 13th, 2014
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.97 KB | None | 0 0
  1. public static ExpandoObject GetWMINameSpace(string name, bool local, ManagementScope scope = null)
  2.         {
  3.             if (scope != null &! local)
  4.                 if (!scope.IsConnected)
  5.                     scope.Connect();
  6.             var query = new ObjectQuery("SELECT * FROM " + name);
  7.             var searcher = local ? new ManagementObjectSearcher(query) : new ManagementObjectSearcher(scope, query);
  8.             dynamic resultSet = new ExpandoObject();
  9.             var a = resultSet as IDictionary<String, object>;
  10.             foreach (var o in searcher.Get().Cast<ManagementObject>())
  11.             {
  12.                 foreach (var p in o.Properties)
  13.                 {
  14.                     a[p.Name] = p.Value ?? "---";
  15.                 }
  16.             }
  17.             return resultSet;
  18.         }
  19.  
  20. //USAGE
  21. dynamic temp = CHLib.Remote.GetWMINameSpace("Win32_OperatingSystem",local,scope);
  22. OS = temp.Caption.Replace("Microsoft Windows ", "");
  23. OSArch = temp.OSArchitecture;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement