WF Activity得到Variable and Argument

 public sealed class CustomActivity1 : NativeActivity
    {
        
protected override void Cancel(NativeActivityContext context)
        {
            Console.Write(
"Cancel");
            
base.Cancel(context);
        }

        
protected override void Abort(NativeActivityAbortContext context)
        {
            Console.Write(
"Abort");
            
base.Abort(context);
        }


        
protected override void CacheMetadata(NativeActivityMetadata metadata)
        {
            _locationReferences 
=
                metadata.Environment.GetLocationReferences().ToList();

            
base.CacheMetadata(metadata);
        }

        
protected override void Execute(NativeActivityContext context)
        {
            LocationReference locationReference 
=
                _locationReferences.Find(
                    x 
=> x.Name == "Test" && x.Type == typeof(int));

            
if (locationReference != null)
            {
                Console.WriteLine(
                    locationReference.Name 
+ " " + locationReference.Type);

                
// Blows up here.
                Location location = locationReference.GetLocation(context);
                location.Value 
= 5;
            }
          //  var pi 
= context.GetType().GetProperty("AllowChainedEnvironmentAccess", BindingFlags.NonPublic | BindingFlags.Instance);
          //  pi.SetValue(context, 
truenull);
            
string myVaraibleName = "varaibleX";
            
string myArgumentName = "argument1";

            
string MyVariableValue = context.DataContext.GetProperties()[myVaraibleName].GetValue(context.DataContext).ToString();
            
string myArgument = context.DataContext.GetProperties()[myArgumentName].GetValue(context.DataContext).ToString();
            Console.Write(
"Execute");
            var extension 
= context.GetExtension<MyExtension>();

        }

        
private List<LocationReference> _locationReferences;


    }

    
class MyExtension : IWorkflowInstanceExtension
    {
        
private WorkflowInstanceProxy _instance;
        
public IEnumerable<object> GetAdditionalExtensions()
        {
            
return null;
        }
        
public void SetInstance(WorkflowInstanceProxy instance)
        {
            _instance 
= instance;
        }
        
public void WaitSome(Bookmark bookmark)
        {

            
//  _instance.WorkflowDefinition

        }
    }


转载于:https://www.cnblogs.com/Rolends/archive/2011/01/01/1923621.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值