Convert WMI CimType to System.Type
        Posted  
        
            by Anonymous Coward
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Anonymous Coward
        
        
        
        Published on 2010-05-25T14:25:54Z
        Indexed on 
            2010/06/09
            17:32 UTC
        
        
        Read the original article
        Hit count: 1005
        
I am trying to write a generic extension to turn a ManagementObjectCollection into a DataTable. This is just to make things easier for a startup script/program I am writing. I have ran into a problem with CimType. I have included the code I have written so far below.
    public static DataTable GetData(this ManagementObjectCollection objectCollection)
    {
        DataTable table = new DataTable();
        foreach (ManagementObject obj in objectCollection)
        {
            if (table.Columns.Count == 0)
            {
                foreach (PropertyData property in obj.Properties)
                {
                    table.Columns.Add(property.Name, property.Type);
                }
            }
            DataRow row = table.NewRow();
            foreach (PropertyData property in obj.Properties)
            {
                row[property.Name] = property.Value;
            }
            table.Rows.Add(row);
        }
        return table;
    }
}
I have found the a method which I think will work at http://www.devcow.com/blogs/adnrg/archive/2005/09/23/108.aspx. However it seems to me like there may be a better way, or even a .net function I am overlooking.
© Stack Overflow or respective owner