//------------------------------------------------------------ // 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(); } } }