private static void SetupManagedOperations(ManagementInfo info, Object instance)
{
MethodInfo[] methods = instance.GetType().GetMethods(BindingFlags.Public|BindingFlags.Instance);
foreach(MethodInfo minfo in methods)
{
if (minfo.IsDefined( typeof(ManagedOperationAttribute), true ))
{
object[] atts = minfo.GetCustomAttributes( typeof(ManagedOperationAttribute), true );
ManagedOperationAttribute att = (ManagedOperationAttribute) atts[0];
ParameterInfo[] parameters = minfo.GetParameters();
Type[] arguments = new Type[ parameters.Length ];
for(int i=0 ; i < parameters.Length; i++ )
{
arguments[i] = parameters[i].ParameterType;
}
ManagementOperation operation = new ManagementOperation(minfo.Name, att.Description, arguments);
info.Operations.Add(operation);
}
}
}