e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
72 lines
2.0 KiB
C#
72 lines
2.0 KiB
C#
//-----------------------------------------------------------------------------
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
namespace System.Activities
|
|
{
|
|
using System;
|
|
using System.Activities.Validation;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics.CodeAnalysis;
|
|
using System.Runtime;
|
|
|
|
// DelegateArgument is the XAML-based construct. RuntimeDelegateArgument is a binding construct to store the value
|
|
[Fx.Tag.XamlVisible(false)]
|
|
public sealed class RuntimeDelegateArgument
|
|
{
|
|
public RuntimeDelegateArgument(string name, Type type, ArgumentDirection direction, DelegateArgument boundArgument)
|
|
{
|
|
if (string.IsNullOrEmpty(name))
|
|
{
|
|
throw FxTrace.Exception.ArgumentNullOrEmpty("name");
|
|
}
|
|
|
|
if (type == null)
|
|
{
|
|
throw FxTrace.Exception.ArgumentNull("type");
|
|
}
|
|
|
|
ArgumentDirectionHelper.Validate(direction, "direction");
|
|
|
|
if (boundArgument != null)
|
|
{
|
|
// Validations that the bound argument matches are done
|
|
// in CacheMetadata for ActivityDelegate.
|
|
|
|
boundArgument.Bind(this);
|
|
}
|
|
|
|
this.Name = name;
|
|
this.Type = type;
|
|
this.Direction = direction;
|
|
this.BoundArgument = boundArgument;
|
|
}
|
|
|
|
public string Name
|
|
{
|
|
get;
|
|
private set;
|
|
}
|
|
|
|
[SuppressMessage(FxCop.Category.Naming, FxCop.Rule.PropertyNamesShouldNotMatchGetMethods,
|
|
Justification = "Workflow normalizes on Type for Type properties")]
|
|
public Type Type
|
|
{
|
|
get;
|
|
private set;
|
|
}
|
|
|
|
public ArgumentDirection Direction
|
|
{
|
|
get;
|
|
private set;
|
|
}
|
|
|
|
public DelegateArgument BoundArgument
|
|
{
|
|
get;
|
|
private set;
|
|
}
|
|
}
|
|
}
|