InvokeMethod, projektant działań
Projektant InvokeMethod służy do tworzenia i konfigurowania InvokeMethod działania.
Działanie InvokeMethod
Metoda InvokeMethod wywołuje publiczną metodę określonego obiektu lub typu.
Używanie Projektant działania InvokeMethod
Uzyskaj dostęp do projektanta działań InvokeMethod w kategorii Typy pierwotne przybornika. Projektant działań InvokeMethod może zostać przeciągnięty z przybornika i porzucony do obszaru Przepływ pracy Projektant, gdzie zawsze są umieszczane działania, takie jak wewnątrz Sequenceelementu . Usunięcie projektanta działań powoduje utworzenie InvokeMethod działania z wartością domyślną DisplayName InvokeMethod. Element DisplayName można edytować w nagłówku projektanta działań InvokeMethod lub w polu DisplayName siatki właściwości.
Właściwości InvokeMethod
W poniższej InvokeMethod tabeli przedstawiono właściwości i opisano sposób ich użycia w projektancie. Te właściwości można edytować w siatce właściwości, a niektóre można edytować na powierzchni Przepływ pracy Projektant.
Nazwa właściwości | Wymagania | Sposób użycia |
---|---|---|
DisplayName | Fałsz | Przyjazna nazwa InvokeMethod działania. Wartość domyślna to InvokeMethod. DisplayName Chociaż nie jest to ściśle wymagane, najlepiej użyć go. |
MethodName | Prawda | Nazwa metody, która ma być wywoływana podczas wykonywania działania. Wywołana metoda musi być zadeklarowana jako publiczna. Tę właściwość można edytować na powierzchni projektanta i jest obowiązkowa. |
Parameters | Fałsz | Kolekcja parametrów wywoływanej metody. Parametry należy dodać do kolekcji w tej samej kolejności, w której są wyświetlane w podpisie metody. Aby wyświetlić okno dialogowe Parametry , w którym można ustawić tę właściwość, kliknij przycisk wielokropka w polu Parametry siatki właściwości. Kliknij przycisk Utwórz argument, aby dodać parametry. |
Result | Fałsz | Wartość zwracana wywołania metody. |
RunAsynchronously | Prawda | Określa, czy metoda jest wywoływana asynchronicznie. Wartość domyślna to False. |
TargetObject | Fałsz | Obiekt, który zawiera metodę do wywołania. Tę właściwość można edytować na powierzchni projektanta. Należy ustawić wartość TargetObject lub TargetType . |
TargetType | Fałsz | Typ .TargetObject Tę właściwość można edytować na powierzchni projektanta. Tę właściwość należy ustawić tylko wtedy, gdy wywoływana metoda jest statyczna. |
Aby przekazać parametry jako parametr wyjściowy języka C# (na przykład Method1(out myParam))
, użyj parametru OutArgument zamiast InOutArgument
Metody z argumentami o nazwie TargetObject lub Result nie mogą być wywoływane przy użyciu InvokeMethod działania. Przyczyną tego jest to, że InvokeMethod działanie rejestruje GenericTypeArgumentselement , TargetObject i Result w .CacheMetadata
Algorytm rejestrowania parametrów na CacheMetadata liście jest wyświetlany na następującej liście:
Zarejestruj TargetObject argument.
Zarejestruj Result argument.
Iterowanie po kolekcji i rejestrowanie każdego argumentu Parameters .
Wynikowy wyjątek jest typu InvalidWorkflowException z następującym komunikatem: "InvokeMethod": zmienna, RuntimeArgument lub DelegateArgument już istnieje o nazwie "TargetObject". Nazwy muszą być unikatowe w zakresie środowiska.
To ograniczenie nie ma zastosowania do TargetType i RunAsynchronously. Nie są argumentami przepływu pracy i dlatego nie są zarejestrowane w GenericTypeArguments kolekcji InvokeMethod działania w metodzie CacheMetadata .