Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Common / AuthoringOM / Serializer / ExtendedPropertyInfo.cs / 1305376 / ExtendedPropertyInfo.cs
namespace System.Workflow.ComponentModel.Serialization { using System; using System.IO; using System.CodeDom; using System.ComponentModel; using System.ComponentModel.Design; using System.ComponentModel.Design.Serialization; using System.Collections; using System.Xml; using System.Xml.Serialization; using System.Reflection; using System.Collections.Generic; using System.Diagnostics; using System.Text; using System.Globalization; using System.Workflow.ComponentModel.Compiler; using System.Workflow.ComponentModel.Design; using System.Runtime.Serialization; using System.Security.Permissions; using System.Collections.ObjectModel; using System.Drawing; #region X:Key Support internal delegate object GetValueHandler(ExtendedPropertyInfo extendedProperty, object extendee); internal delegate void SetValueHandler(ExtendedPropertyInfo extendedProperty, object extendee, object value); internal delegate XmlQualifiedName GetQualifiedNameHandler(ExtendedPropertyInfo extendedProperty, WorkflowMarkupSerializationManager manager, out string prefix); #region Class ExtendedPropertyInfo internal sealed class ExtendedPropertyInfo : PropertyInfo { #region Members and Constructors private PropertyInfo realPropertyInfo = null; private GetValueHandler OnGetValue; private SetValueHandler OnSetValue; private GetQualifiedNameHandler OnGetXmlQualifiedName; private WorkflowMarkupSerializationManager manager = null; internal ExtendedPropertyInfo(PropertyInfo propertyInfo, GetValueHandler getValueHandler, SetValueHandler setValueHandler, GetQualifiedNameHandler qualifiedNameHandler) { this.realPropertyInfo = propertyInfo; this.OnGetValue = getValueHandler; this.OnSetValue = setValueHandler; this.OnGetXmlQualifiedName = qualifiedNameHandler; } internal ExtendedPropertyInfo(PropertyInfo propertyInfo, GetValueHandler getValueHandler, SetValueHandler setValueHandler, GetQualifiedNameHandler qualifiedNameHandler, WorkflowMarkupSerializationManager manager) : this(propertyInfo, getValueHandler, setValueHandler, qualifiedNameHandler) { this.manager = manager; } internal PropertyInfo RealPropertyInfo { get { return this.realPropertyInfo; } } internal WorkflowMarkupSerializationManager SerializationManager { get { return this.manager; } } #endregion #region Property Info overrides public override string Name { get { return this.realPropertyInfo.Name; } } public override Type DeclaringType { get { return this.realPropertyInfo.DeclaringType; } } public override Type ReflectedType { get { return this.realPropertyInfo.ReflectedType; } } public override Type PropertyType { get { return this.realPropertyInfo.PropertyType; } } public override MethodInfo[] GetAccessors(bool nonPublic) { return this.realPropertyInfo.GetAccessors(nonPublic); } public override MethodInfo GetGetMethod(bool nonPublic) { return this.realPropertyInfo.GetGetMethod(nonPublic); } public override MethodInfo GetSetMethod(bool nonPublic) { return this.realPropertyInfo.GetSetMethod(nonPublic); } public override object GetValue(object obj, BindingFlags invokeAttr, Binder binder, object[] index, CultureInfo culture) { if (OnGetValue != null) return OnGetValue(this, obj); else return null; } public override void SetValue(object obj, object value, BindingFlags invokeAttr, Binder binder, object[] index, CultureInfo culture) { if (OnSetValue != null) OnSetValue(this, obj, value); } public XmlQualifiedName GetXmlQualifiedName(WorkflowMarkupSerializationManager manager, out string prefix) { prefix = String.Empty; if (OnGetXmlQualifiedName != null) return OnGetXmlQualifiedName(this, manager, out prefix); else return null; } public override ParameterInfo[] GetIndexParameters() { return this.realPropertyInfo.GetIndexParameters(); } public override PropertyAttributes Attributes { get { return this.realPropertyInfo.Attributes; } } public override bool CanRead { get { return this.realPropertyInfo.CanRead; } } public override bool CanWrite { get { return this.realPropertyInfo.CanWrite; } } #endregion #region MemberInfo Overrides public override object[] GetCustomAttributes(bool inherit) { return this.realPropertyInfo.GetCustomAttributes(inherit); } public override object[] GetCustomAttributes(Type attributeType, bool inherit) { return this.realPropertyInfo.GetCustomAttributes(attributeType, inherit); } public override bool IsDefined(Type attributeType, bool inherit) { return this.realPropertyInfo.IsDefined(attributeType, inherit); } #endregion #region Helpers internal static bool IsExtendedProperty(WorkflowMarkupSerializationManager manager, XmlQualifiedName xmlQualifiedName) { bool isExtendedProperty = false; object extendee = manager.Context.Current; if (extendee != null) { foreach (ExtendedPropertyInfo extendedProperty in manager.GetExtendedProperties(extendee)) { string prefix = String.Empty; XmlQualifiedName qualifiedPropertyName = extendedProperty.GetXmlQualifiedName(manager, out prefix); if (qualifiedPropertyName.Name.Equals(xmlQualifiedName.Name, StringComparison.Ordinal) && qualifiedPropertyName.Namespace.Equals(xmlQualifiedName.Namespace, StringComparison.Ordinal)) { isExtendedProperty = true; break; } } } return isExtendedProperty; } internal static bool IsExtendedProperty(WorkflowMarkupSerializationManager manager, IListpropInfos, XmlQualifiedName xmlQualifiedName) { foreach (PropertyInfo propInfo in propInfos) { ExtendedPropertyInfo extendedProperty = propInfo as ExtendedPropertyInfo; if (extendedProperty == null) continue; string prefix = String.Empty; XmlQualifiedName qualifiedPropertyName = extendedProperty.GetXmlQualifiedName(manager, out prefix); if (qualifiedPropertyName.Name.Equals(xmlQualifiedName.Name, StringComparison.Ordinal) && qualifiedPropertyName.Namespace.Equals(xmlQualifiedName.Namespace, StringComparison.Ordinal)) { return true; } } return false; } #endregion } #endregion #endregion } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. namespace System.Workflow.ComponentModel.Serialization { using System; using System.IO; using System.CodeDom; using System.ComponentModel; using System.ComponentModel.Design; using System.ComponentModel.Design.Serialization; using System.Collections; using System.Xml; using System.Xml.Serialization; using System.Reflection; using System.Collections.Generic; using System.Diagnostics; using System.Text; using System.Globalization; using System.Workflow.ComponentModel.Compiler; using System.Workflow.ComponentModel.Design; using System.Runtime.Serialization; using System.Security.Permissions; using System.Collections.ObjectModel; using System.Drawing; #region X:Key Support internal delegate object GetValueHandler(ExtendedPropertyInfo extendedProperty, object extendee); internal delegate void SetValueHandler(ExtendedPropertyInfo extendedProperty, object extendee, object value); internal delegate XmlQualifiedName GetQualifiedNameHandler(ExtendedPropertyInfo extendedProperty, WorkflowMarkupSerializationManager manager, out string prefix); #region Class ExtendedPropertyInfo internal sealed class ExtendedPropertyInfo : PropertyInfo { #region Members and Constructors private PropertyInfo realPropertyInfo = null; private GetValueHandler OnGetValue; private SetValueHandler OnSetValue; private GetQualifiedNameHandler OnGetXmlQualifiedName; private WorkflowMarkupSerializationManager manager = null; internal ExtendedPropertyInfo(PropertyInfo propertyInfo, GetValueHandler getValueHandler, SetValueHandler setValueHandler, GetQualifiedNameHandler qualifiedNameHandler) { this.realPropertyInfo = propertyInfo; this.OnGetValue = getValueHandler; this.OnSetValue = setValueHandler; this.OnGetXmlQualifiedName = qualifiedNameHandler; } internal ExtendedPropertyInfo(PropertyInfo propertyInfo, GetValueHandler getValueHandler, SetValueHandler setValueHandler, GetQualifiedNameHandler qualifiedNameHandler, WorkflowMarkupSerializationManager manager) : this(propertyInfo, getValueHandler, setValueHandler, qualifiedNameHandler) { this.manager = manager; } internal PropertyInfo RealPropertyInfo { get { return this.realPropertyInfo; } } internal WorkflowMarkupSerializationManager SerializationManager { get { return this.manager; } } #endregion #region Property Info overrides public override string Name { get { return this.realPropertyInfo.Name; } } public override Type DeclaringType { get { return this.realPropertyInfo.DeclaringType; } } public override Type ReflectedType { get { return this.realPropertyInfo.ReflectedType; } } public override Type PropertyType { get { return this.realPropertyInfo.PropertyType; } } public override MethodInfo[] GetAccessors(bool nonPublic) { return this.realPropertyInfo.GetAccessors(nonPublic); } public override MethodInfo GetGetMethod(bool nonPublic) { return this.realPropertyInfo.GetGetMethod(nonPublic); } public override MethodInfo GetSetMethod(bool nonPublic) { return this.realPropertyInfo.GetSetMethod(nonPublic); } public override object GetValue(object obj, BindingFlags invokeAttr, Binder binder, object[] index, CultureInfo culture) { if (OnGetValue != null) return OnGetValue(this, obj); else return null; } public override void SetValue(object obj, object value, BindingFlags invokeAttr, Binder binder, object[] index, CultureInfo culture) { if (OnSetValue != null) OnSetValue(this, obj, value); } public XmlQualifiedName GetXmlQualifiedName(WorkflowMarkupSerializationManager manager, out string prefix) { prefix = String.Empty; if (OnGetXmlQualifiedName != null) return OnGetXmlQualifiedName(this, manager, out prefix); else return null; } public override ParameterInfo[] GetIndexParameters() { return this.realPropertyInfo.GetIndexParameters(); } public override PropertyAttributes Attributes { get { return this.realPropertyInfo.Attributes; } } public override bool CanRead { get { return this.realPropertyInfo.CanRead; } } public override bool CanWrite { get { return this.realPropertyInfo.CanWrite; } } #endregion #region MemberInfo Overrides public override object[] GetCustomAttributes(bool inherit) { return this.realPropertyInfo.GetCustomAttributes(inherit); } public override object[] GetCustomAttributes(Type attributeType, bool inherit) { return this.realPropertyInfo.GetCustomAttributes(attributeType, inherit); } public override bool IsDefined(Type attributeType, bool inherit) { return this.realPropertyInfo.IsDefined(attributeType, inherit); } #endregion #region Helpers internal static bool IsExtendedProperty(WorkflowMarkupSerializationManager manager, XmlQualifiedName xmlQualifiedName) { bool isExtendedProperty = false; object extendee = manager.Context.Current; if (extendee != null) { foreach (ExtendedPropertyInfo extendedProperty in manager.GetExtendedProperties(extendee)) { string prefix = String.Empty; XmlQualifiedName qualifiedPropertyName = extendedProperty.GetXmlQualifiedName(manager, out prefix); if (qualifiedPropertyName.Name.Equals(xmlQualifiedName.Name, StringComparison.Ordinal) && qualifiedPropertyName.Namespace.Equals(xmlQualifiedName.Namespace, StringComparison.Ordinal)) { isExtendedProperty = true; break; } } } return isExtendedProperty; } internal static bool IsExtendedProperty(WorkflowMarkupSerializationManager manager, IList propInfos, XmlQualifiedName xmlQualifiedName) { foreach (PropertyInfo propInfo in propInfos) { ExtendedPropertyInfo extendedProperty = propInfo as ExtendedPropertyInfo; if (extendedProperty == null) continue; string prefix = String.Empty; XmlQualifiedName qualifiedPropertyName = extendedProperty.GetXmlQualifiedName(manager, out prefix); if (qualifiedPropertyName.Name.Equals(xmlQualifiedName.Name, StringComparison.Ordinal) && qualifiedPropertyName.Namespace.Equals(xmlQualifiedName.Namespace, StringComparison.Ordinal)) { return true; } } return false; } #endregion } #endregion #endregion } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PaperSource.cs
- _OverlappedAsyncResult.cs
- XmlSchemaSimpleTypeList.cs
- URLBuilder.cs
- CursorInteropHelper.cs
- ComponentCommands.cs
- Win32MouseDevice.cs
- PropertyEmitterBase.cs
- TrimSurroundingWhitespaceAttribute.cs
- ByteAnimationBase.cs
- EntitySetBase.cs
- HostedNamedPipeTransportManager.cs
- ToolboxItemCollection.cs
- PersianCalendar.cs
- CleanUpVirtualizedItemEventArgs.cs
- GZipStream.cs
- SqlMethodAttribute.cs
- Dictionary.cs
- WebPartTransformerAttribute.cs
- StringAnimationBase.cs
- Event.cs
- ViewDesigner.cs
- NavigationProgressEventArgs.cs
- TraceContextEventArgs.cs
- PrintDocument.cs
- PermissionListSet.cs
- EventProviderWriter.cs
- XmlSchemaImport.cs
- panel.cs
- Baml2006Reader.cs
- ComboBoxDesigner.cs
- SessionPageStatePersister.cs
- EditorPartChrome.cs
- StringValueSerializer.cs
- WindowsFormsSectionHandler.cs
- SqlDependencyUtils.cs
- DocumentXmlWriter.cs
- ToolBarButton.cs
- AuthorizationRule.cs
- AsyncPostBackTrigger.cs
- StorageTypeMapping.cs
- NameValueSectionHandler.cs
- ToolStripTextBox.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- SiteMapProvider.cs
- SymmetricAlgorithm.cs
- ValueQuery.cs
- ZipIOModeEnforcingStream.cs
- UserUseLicenseDictionaryLoader.cs
- TypeUtil.cs
- TransformGroup.cs
- UnsafeNativeMethods.cs
- FileRecordSequence.cs
- MimeTypeMapper.cs
- VoiceInfo.cs
- LayoutTableCell.cs
- DiffuseMaterial.cs
- BooleanSwitch.cs
- Registry.cs
- EditCommandColumn.cs
- TailCallAnalyzer.cs
- RedirectionProxy.cs
- RecordsAffectedEventArgs.cs
- SqlConnectionString.cs
- CmsInterop.cs
- AdornedElementPlaceholder.cs
- Encoder.cs
- ExceptionUtil.cs
- XAMLParseException.cs
- NativeMethods.cs
- SafeSystemMetrics.cs
- TextElementAutomationPeer.cs
- SqlParameterizer.cs
- MembershipSection.cs
- SourceElementsCollection.cs
- OrderByExpression.cs
- Command.cs
- DesignerOptionService.cs
- HyperLinkField.cs
- Query.cs
- Page.cs
- ValidationError.cs
- XmlSignatureProperties.cs
- WriteStateInfoBase.cs
- ComPlusInstanceContextInitializer.cs
- EmptyStringExpandableObjectConverter.cs
- HttpVersion.cs
- BitmapSourceSafeMILHandle.cs
- NativeCppClassAttribute.cs
- TableLayoutCellPaintEventArgs.cs
- ColorConvertedBitmap.cs
- SimpleHandlerBuildProvider.cs
- ConstructorBuilder.cs
- WebServicesInteroperability.cs
- CollectionType.cs
- ProcessStartInfo.cs
- ApplicationBuildProvider.cs
- CheckPair.cs
- ShutDownListener.cs
- ConnectionsZoneDesigner.cs