Egenskaper jämfört med argument
Det finns flera tillgängliga alternativ för att skicka data till en aktivitet. Förutom att använda InArgumentkan aktiviteter också utvecklas som tar emot data med antingen standard-CLR-egenskaper eller offentliga ActivityAction egenskaper. I det här avsnittet beskrivs hur du väljer lämplig metodtyp.
Använda CLR-egenskaper
När du skickar data till en aktivitet är CLR-egenskaper (dvs. offentliga metoder som använder Get- och Set-rutiner för att exponera data) det alternativ som har flest begränsningar. Värdet för en parameter som skickas till en CLR-egenskap måste vara känt när lösningen kompileras. det här värdet kommer att vara detsamma för varje instans av arbetsflödet. På så sätt liknar ett värde som skickas till en CLR-egenskap en konstant som definierats i kod. Det här värdet kan inte ändras under aktivitetens livslängd och kan inte ändras för olika instanser av aktiviteten. MethodName är ett exempel på en CLR-egenskap som exponeras av en aktivitet. metodnamnet som aktivitetsanropen inte kan ändras baserat på körningsvillkor och kommer att vara samma för varje instans av aktiviteten.
Använda argument
Argument bör användas när data endast utvärderas en gång under aktivitetens livslängd. Dess värde ändras alltså inte under aktivitetens livslängd, men värdet kan vara annorlunda för olika instanser av aktiviteten. Condition är ett exempel på ett värde som utvärderas en gång. därför definieras det som ett argument. Text är ett annat exempel på en metod som ska definieras som ett argument, eftersom den bara utvärderas en gång under aktivitetens körning, men den kan vara annorlunda för olika instanser av aktiviteten.
Använda ActivityAction
När data behöver utvärderas flera gånger under livslängden för en aktivitets körning bör en ActivityAction användas. Egenskapen Condition utvärderas till exempel för varje iteration av loopen While . Om en InArgument användes för det här ändamålet skulle loopen aldrig avslutas, eftersom argumentet inte skulle omvärderas för varje iteration och alltid returnera samma resultat.