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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------
namespace System.Workflow.Activities
{
using System;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Diagnostics.CodeAnalysis;
using System.Drawing.Design;
using System.Net.Security;
using System.Reflection;
using System.Workflow.Activities.Design;
using System.Workflow.ComponentModel;
using System.Workflow.ComponentModel.Compiler;
using System.Workflow.ComponentModel.Serialization;
using System.Collections.Generic;
[TypeConverter(typeof(ServiceOperationInfoTypeConverter))]
[Editor(typeof(ServiceOperationUIEditor), typeof(UITypeEditor))]
[DesignerSerializer(typeof(DependencyObjectCodeDomSerializer), typeof(CodeDomSerializer))]
[Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
public abstract class OperationInfoBase : DependencyObject
{
[SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes")]
internal static readonly DependencyProperty MethodInfoProperty =
DependencyProperty.Register("MethodInfo",
typeof(MethodInfo), typeof(OperationInfoBase),
new PropertyMetadata(null, DependencyPropertyOptions.NonSerialized));
[SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes")]
internal static readonly DependencyProperty NameProperty =
DependencyProperty.Register("Name",
typeof(string), typeof(OperationInfoBase),
new PropertyMetadata(null, DependencyPropertyOptions.Metadata));
[SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes")]
internal static readonly DependencyProperty PrincipalPermissionNameProperty =
DependencyProperty.Register("PrincipalPermissionName",
typeof(string), typeof(OperationInfoBase),
new PropertyMetadata(null, DependencyPropertyOptions.Metadata));
[SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes")]
internal static readonly DependencyProperty PrincipalPermissionRoleProperty =
DependencyProperty.Register("PrincipalPermissionRole",
typeof(string), typeof(OperationInfoBase),
new PropertyMetadata(null, DependencyPropertyOptions.Metadata));
public virtual string Name
{
get { return (string) this.GetValue(OperationInfoBase.NameProperty); }
set { this.SetValue(OperationInfoBase.NameProperty, value); }
}
[DefaultValue(null)]
public virtual string PrincipalPermissionName
{
get { return (string) this.GetValue(OperationInfoBase.PrincipalPermissionNameProperty); }
set { this.SetValue(OperationInfoBase.PrincipalPermissionNameProperty, value); }
}
[DefaultValue(null)]
public virtual string PrincipalPermissionRole
{
get { return (string) this.GetValue(OperationInfoBase.PrincipalPermissionRoleProperty); }
set { this.SetValue(OperationInfoBase.PrincipalPermissionRoleProperty, value); }
}
internal bool IsReadOnly
{
get
{
return !this.DesignMode;
}
}
public virtual OperationInfoBase Clone()
{
OperationInfoBase clonedOperation = (OperationInfoBase) Activator.CreateInstance(this.GetType());
clonedOperation.Name = this.Name;
clonedOperation.PrincipalPermissionName = this.PrincipalPermissionName;
clonedOperation.PrincipalPermissionRole = this.PrincipalPermissionRole;
return clonedOperation;
}
public override bool Equals(object obj)
{
OperationInfoBase operationInfo = obj as OperationInfoBase;
if (operationInfo == null)
{
return false;
}
if (String.Compare(operationInfo.Name, this.Name, StringComparison.Ordinal) != 0)
{
return false;
}
if (String.Compare(operationInfo.PrincipalPermissionName, this.PrincipalPermissionName, StringComparison.Ordinal) != 0)
{
return false;
}
if (String.Compare(operationInfo.PrincipalPermissionRole, this.PrincipalPermissionRole, StringComparison.Ordinal) != 0)
{
return false;
}
return true;
}
public override int GetHashCode()
{
return base.GetHashCode();
}
internal protected abstract string GetContractFullName(IServiceProvider provider);
internal protected abstract Type GetContractType(IServiceProvider provider);
internal protected abstract bool GetIsOneWay(IServiceProvider provider);
internal protected abstract MethodInfo GetMethodInfo(IServiceProvider provider);
internal protected abstract OperationParameterInfoCollection GetParameters(IServiceProvider provider);
}
}
|