e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
64 lines
1.9 KiB
C#
64 lines
1.9 KiB
C#
//-----------------------------------------------------------------------------
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
namespace System.Activities
|
|
{
|
|
using System;
|
|
using System.Diagnostics.CodeAnalysis;
|
|
using System.Runtime;
|
|
|
|
public abstract class LocationReference
|
|
{
|
|
protected LocationReference()
|
|
{
|
|
}
|
|
|
|
public string Name
|
|
{
|
|
get
|
|
{
|
|
return this.NameCore;
|
|
}
|
|
}
|
|
|
|
[SuppressMessage(FxCop.Category.Naming, FxCop.Rule.PropertyNamesShouldNotMatchGetMethods,
|
|
Justification = "Workflow normalizes on Type for Type properties")]
|
|
public Type Type
|
|
{
|
|
get
|
|
{
|
|
return this.TypeCore;
|
|
}
|
|
}
|
|
|
|
// internal Id use for arguments/variables/delegate arguments, and accessed
|
|
// by our mapping pieces
|
|
internal int Id
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
|
|
protected abstract string NameCore { get; }
|
|
protected abstract Type TypeCore { get; }
|
|
|
|
// Soft-Link: This method is referenced through reflection by
|
|
// ExpressionUtilities.TryRewriteLambdaExpression. Update that
|
|
// file if the signature changes.
|
|
public abstract Location GetLocation(ActivityContext context);
|
|
|
|
// The contract of this method is the caller promises never to write to the location
|
|
internal virtual Location GetLocationForRead(ActivityContext context)
|
|
{
|
|
return GetLocation(context);
|
|
}
|
|
|
|
// The contract of this method is the caller promises never to read from the location
|
|
internal virtual Location GetLocationForWrite(ActivityContext context)
|
|
{
|
|
return GetLocation(context);
|
|
}
|
|
}
|
|
}
|