204 lines
6.4 KiB
C#
204 lines
6.4 KiB
C#
//------------------------------------------------------------
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//------------------------------------------------------------
|
|
|
|
namespace System.Workflow.Activities
|
|
{
|
|
using System;
|
|
using System.ComponentModel;
|
|
using System.ComponentModel.Design.Serialization;
|
|
using System.Drawing.Design;
|
|
using System.Diagnostics.CodeAnalysis;
|
|
using System.Net.Security;
|
|
using System.Reflection;
|
|
using System.ServiceModel;
|
|
using System.Workflow.ComponentModel;
|
|
using System.Workflow.ComponentModel.Compiler;
|
|
using System.Workflow.ComponentModel.Serialization;
|
|
|
|
[Browsable(true)]
|
|
[DesignerSerializer(typeof(DependencyObjectCodeDomSerializer), typeof(CodeDomSerializer))]
|
|
[Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
|
|
public sealed class OperationParameterInfo : DependencyObject
|
|
{
|
|
[SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes")]
|
|
public static readonly DependencyProperty AttributesProperty =
|
|
DependencyProperty.Register("Attributes",
|
|
typeof(ParameterAttributes), typeof(OperationParameterInfo),
|
|
new PropertyMetadata(DependencyPropertyOptions.Metadata));
|
|
|
|
[SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes")]
|
|
public static readonly DependencyProperty NameProperty =
|
|
DependencyProperty.Register("Name",
|
|
typeof(string), typeof(OperationParameterInfo),
|
|
new PropertyMetadata(null, DependencyPropertyOptions.Metadata));
|
|
|
|
[SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes")]
|
|
public static readonly DependencyProperty ParameterTypeProperty =
|
|
DependencyProperty.Register("ParameterType",
|
|
typeof(Type), typeof(OperationParameterInfo),
|
|
new PropertyMetadata(typeof(void), DependencyPropertyOptions.Metadata));
|
|
|
|
[SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes")]
|
|
public static readonly DependencyProperty PositionProperty =
|
|
DependencyProperty.Register("Position",
|
|
typeof(int), typeof(OperationParameterInfo),
|
|
new PropertyMetadata(-1, DependencyPropertyOptions.Metadata));
|
|
|
|
public OperationParameterInfo()
|
|
{
|
|
}
|
|
|
|
public OperationParameterInfo(string parameterName)
|
|
{
|
|
SetValue(NameProperty, parameterName);
|
|
}
|
|
|
|
internal OperationParameterInfo(ParameterInfo parameter)
|
|
{
|
|
if (parameter == null)
|
|
{
|
|
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("parameter");
|
|
}
|
|
|
|
SetValue(OperationParameterInfo.NameProperty, parameter.Name);
|
|
SetValue(OperationParameterInfo.PositionProperty, parameter.Position);
|
|
SetValue(OperationParameterInfo.AttributesProperty, parameter.Attributes);
|
|
SetValue(OperationParameterInfo.ParameterTypeProperty, parameter.ParameterType);
|
|
}
|
|
|
|
public ParameterAttributes Attributes
|
|
{
|
|
get
|
|
{
|
|
return (ParameterAttributes) GetValue(AttributesProperty);
|
|
}
|
|
set
|
|
{
|
|
SetValue(AttributesProperty, value);
|
|
}
|
|
}
|
|
|
|
public bool IsIn
|
|
{
|
|
get
|
|
{
|
|
return ((this.Attributes & ParameterAttributes.In) != 0);
|
|
}
|
|
}
|
|
|
|
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")]
|
|
public bool IsLcid
|
|
{
|
|
get
|
|
{
|
|
return ((this.Attributes & ParameterAttributes.Lcid) != 0);
|
|
}
|
|
}
|
|
|
|
public bool IsOptional
|
|
{
|
|
get
|
|
{
|
|
return ((this.Attributes & ParameterAttributes.Optional) != 0);
|
|
}
|
|
}
|
|
|
|
public bool IsOut
|
|
{
|
|
get
|
|
{
|
|
return ((this.Attributes & ParameterAttributes.Out) != 0);
|
|
}
|
|
}
|
|
|
|
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")]
|
|
public bool IsRetval
|
|
{
|
|
get
|
|
{
|
|
return ((this.Attributes & ParameterAttributes.Retval) != 0);
|
|
}
|
|
}
|
|
|
|
public string Name
|
|
{
|
|
get
|
|
{
|
|
return (string) GetValue(NameProperty);
|
|
}
|
|
set
|
|
{
|
|
SetValue(NameProperty, value);
|
|
}
|
|
}
|
|
|
|
public Type ParameterType
|
|
{
|
|
get
|
|
{
|
|
return (Type) GetValue(ParameterTypeProperty);
|
|
}
|
|
set
|
|
{
|
|
SetValue(ParameterTypeProperty, value);
|
|
}
|
|
}
|
|
|
|
public int Position
|
|
{
|
|
get
|
|
{
|
|
return (int) GetValue(PositionProperty);
|
|
}
|
|
set
|
|
{
|
|
SetValue(PositionProperty, value);
|
|
}
|
|
}
|
|
|
|
public OperationParameterInfo Clone()
|
|
{
|
|
OperationParameterInfo clonedParameter = new OperationParameterInfo();
|
|
clonedParameter.Name = this.Name;
|
|
clonedParameter.Attributes = this.Attributes;
|
|
clonedParameter.Position = this.Position;
|
|
clonedParameter.ParameterType = this.ParameterType;
|
|
|
|
return clonedParameter;
|
|
}
|
|
|
|
public override bool Equals(object obj)
|
|
{
|
|
OperationParameterInfo parameter = obj as OperationParameterInfo;
|
|
if (parameter == null)
|
|
{
|
|
return false;
|
|
}
|
|
if (String.Compare(parameter.Name, this.Name, StringComparison.Ordinal) != 0)
|
|
{
|
|
return false;
|
|
}
|
|
if (parameter.Attributes != this.Attributes)
|
|
{
|
|
return false;
|
|
}
|
|
if (parameter.Position != this.Position)
|
|
{
|
|
return false;
|
|
}
|
|
if (parameter.ParameterType != this.ParameterType)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
public override int GetHashCode()
|
|
{
|
|
return base.GetHashCode();
|
|
}
|
|
}
|
|
}
|