1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
//-----------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.Activities.Runtime
{
using System;
using System.Activities.DynamicUpdate;
using System.Runtime;
using System.Runtime.Serialization;
using System.Collections.ObjectModel;
[DataContract]
class ActivityInstanceReference : ActivityInstanceMap.IActivityReference
{
ActivityInstance activityInstance;
internal ActivityInstanceReference(ActivityInstance activity)
{
this.activityInstance = activity;
}
[DataMember(Name = "activityInstance")]
internal ActivityInstance SerializedActivityInstance
{
get { return this.activityInstance; }
set { this.activityInstance = value; }
}
Activity ActivityInstanceMap.IActivityReference.Activity
{
get
{
return this.activityInstance.Activity;
}
}
public ActivityInstance ActivityInstance
{
get
{
return this.activityInstance;
}
}
void ActivityInstanceMap.IActivityReference.Load(Activity activity, ActivityInstanceMap instanceMap)
{
// The conditional calling of ActivityInstance.Load is the value
// added by this wrapper class. This is because we can't guarantee
// that multiple activities won't have a reference to the same
// ActivityInstance.
if (this.activityInstance.Activity == null)
{
((ActivityInstanceMap.IActivityReference)this.activityInstance).Load(activity, instanceMap);
}
}
}
}
|