protected override void AddAllMethods <T>(
     ManagementBaseObject wmiObject,
     PSMemberInfoInternalCollection <T> members)
 {
     if (!typeof(T).IsAssignableFrom(typeof(PSMethod)))
     {
         return;
     }
     foreach (BaseWMIAdapter.WMIMethodCacheEntry member in BaseWMIAdapter.GetInstanceMethodTable(wmiObject, true).memberCollection)
     {
         if ((object)members[member.Name] == null)
         {
             Adapter.tracer.WriteLine("Adding method {0}", (object)member.Name);
             members.Add(new PSMethod(member.Name, (Adapter)this, (object)wmiObject, (object)member) as T);
         }
     }
 }
 protected override T GetManagementObjectMethod <T>(
     ManagementBaseObject wmiObject,
     string methodName)
 {
     if (!typeof(T).IsAssignableFrom(typeof(PSMethod)))
     {
         return(default(T));
     }
     BaseWMIAdapter.WMIMethodCacheEntry methodCacheEntry = (BaseWMIAdapter.WMIMethodCacheEntry)BaseWMIAdapter.GetInstanceMethodTable(wmiObject, true)[methodName];
     return(methodCacheEntry == null ? default(T) : new PSMethod(methodCacheEntry.Name, (Adapter)this, (object)wmiObject, (object)methodCacheEntry) as T);
 }