TaskList.InvokeMethod(String, Object) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Chama o método especificado.
public:
virtual System::Object ^ InvokeMethod(System::String ^ methodName, System::Object ^ userData);
public virtual object InvokeMethod(string methodName, object userData);
abstract member InvokeMethod : string * obj -> obj
override this.InvokeMethod : string * obj -> obj
Public Overridable Function InvokeMethod (methodName As String, userData As Object) As Object
Parâmetros
- methodName
- String
O nome do método a ser chamado.
- userData
- Object
Um objeto arbitrário fornecido pelo usuário.
Retornos
Um objeto definido pelo usuário.
Exemplos
public override object InvokeMethod(string methodName, object userData)
{
Type taskListType = GetType();
MethodInfo methodInfo = taskListType.GetMethod(methodName);
if (methodInfo != null)
{
if (userData == null)
{
return methodInfo.Invoke(this, null);
} else
{
return methodInfo.Invoke(this, new object[] { userData });
}
} else
{
throw new InvalidOperationException("methodName : " + methodName +
"\n taskListType.Name " + taskListType.Name);
}
}
/// GetTaskItems() is called every time the context menu is invoked.
public override System.Collections.ICollection GetTaskItems() {
ArrayList items = new ArrayList();
Image imgAsk = rLoadImg.loadImgs(SystemIcons.Asterisk, 16);
Image imgErr = rLoadImg.loadImgs(SystemIcons.Error, 16);
items.Add(new MethodTaskItem(
"DisplayTime", // Method Name
"Show Time", // Menu item Text
"DemoCategory") // Category
);
Person prs = new Person(66, "Joe", "Smith");
MethodTaskItem mti_i = new MethodTaskItem(
"InvTst", // Method Name
"Invoke Test", // Menu item Text
sDemoCat, // Category
"Tool Tip:SC", // ToolTip non-functional
imgAsk, // Menu Icon
prs); // user data
mti_i.CausesNavigation = false;
traceMTI(mti_i);
items.Add(mti_i);
items.Add(new MethodTaskItem(
"ShowCnt", // Method Name
"Show Count", // Menu item Text
sDemoCat, // Category
"Tool Tip:SC", // ToolTip non-functional
mti_i.Image) // Menu Icon
);
public void myInvoke()
{
TaskList tl = getMyTaskList();
Person p = new Person(49, "Joe", "Smith");
tl.InvokeMethod("InvTst", p);
}
// DemoHierarchyInfo.InvTst()
//
public int InvTst(Person p)
{
Trace.WriteLine(" InvTst : person age: " + p._age.ToString()
+ "\n First name \"" + p._fName
+ "\"\n Last name " + p._LstName + "\"");
return SH._pCnt;
}
// method DemoHierarchyInfo.HierarchyDemoInfoTaskList.InvTst()
public void InvTst(object obj)
{
// Call parents InvTst (DemoHierarchyInfo.InvTst )
//
_owner.InvTst((Person)obj);
UpdateCurPers();
_owner.flush();
}
Comentários
Um parâmetro não nulo userData só será válido se você tiver criado o item de tarefa de método usando o construtor de seis parâmetros MethodTaskItem ao criar o TaskList.