Advertisement
Advertisement
| 12.17.2007 at 01:50PM PST, ID: 23029235 |
|
[x]
Attachment Details
|
||
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: |
SERVICE CONTRACT:
using System;
using System.ServiceModel;
using System.Collections.Generic;
namespace EasyWMI.Interfaces
{
[ServiceContract(Namespace = "http://EasyWMI.Interfaces/2007/12")]
public interface IController
{
[OperationContract]
System.Collections.ArrayList SelectAll();
}
}
DATA CONTRACT:
using System.Runtime.Serialization;
using System.ServiceModel;
using System;
namespace EasyWMI.Models.root.CIMV2
{
[DataContract()]
[KnownType(typeof(object[]))]
[KnownType(typeof(ushort[]))]
[KnownType(typeof(string[]))]
public class Win32_BIOS
{
private ushort [] m_BiosCharacteristics;
private string [] m_BIOSVersion;
private string m_BuildNumber;
[DataMember()]
public ushort [] BiosCharacteristics
{
get
{
return this.m_BiosCharacteristics;
}
set
{
this.m_BiosCharacteristics = value;
}
}
[DataMember()]
public string [] BIOSVersion
{
get
{
return this.m_BIOSVersion;
}
set
{
this.m_BIOSVersion = value;
}
}
[DataMember()]
public string BuildNumber
{
get
{
return this.m_BuildNumber;
}
set
{
this.m_BuildNumber = value;
}
}
}
}
Here is the method that it fails on when it try's to return the collection (this method belongs to the class that inherits the service contract for IController):
public System.Collections.ArrayList SelectAll()
{
ManagementObjectCollection oReturnCollection = null;
System.Collections.ArrayList List = new System.Collections.ArrayList();
try
{
oReturnCollection = GetObjectCollection("Win32_BIOS");
}
catch (System.Exception ex)
{
Debug.WriteLine(ex.Message);
}
int x = 0;
ManagementObjectCollection.ManagementObjectEnumerator CollectionEnumerator = oReturnCollection.GetEnumerator();
int i = 0;
for (i = 0; (i < oReturnCollection.Count); i = (i + 1))
{
Win32_BIOS WMIObject = new Win32_BIOS();
CollectionEnumerator.MoveNext();
ManagementObject newWMIObject = (ManagementObject)CollectionEnumerator.Current;
PropertyDataCollection t = newWMIObject.Properties;
if (t != null)
{
PropertyDataCollection.PropertyDataEnumerator PropertyCollectionEnumerator = t.GetEnumerator();
for (x = 0; (x < t.Count); x = (x + 1))
{
PropertyInfo p = null;
PropertyData pi = null;
try
{
PropertyCollectionEnumerator.MoveNext();
pi = (PropertyData)PropertyCollectionEnumerator.Current;
p = typeof(Win32_BIOS).GetProperty(pi.Name);
}
catch (System.Exception ex)
{
Debug.WriteLine(ex.Message);
}
try
{
if (p != null && pi.Value != null)
{
p.SetValue(WMIObject, pi.Value, null);
PropertyInfo ppath = typeof(Win32_BIOS).GetProperty("MyPath");
ppath.SetValue(WMIObject, newWMIObject.Path.ToString(), null);
}
}
catch (System.Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
}
List.Add(WMIObject);
}
return List;
}
|